querysub 0.370.0 → 0.372.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +1 -1
- package/src/deployManager/components/ServiceDetailPage.tsx +2 -2
- package/src/deployManager/components/ServicesListPage.tsx +1 -1
- package/src/diagnostics/logs/IndexedLogs/FilePathSelector.tsx +1 -4
- package/src/diagnostics/logs/IndexedLogs/IndexedLogs.ts +1 -0
- package/src/diagnostics/logs/IndexedLogs/LogViewer3.tsx +8 -2
- package/src/diagnostics/logs/IndexedLogs/moveIndexLogsToPublic.ts +3 -2
- package/src/diagnostics/logs/lifeCycleAnalysis/lifeCycles.tsx +12 -11
package/package.json
CHANGED
|
@@ -487,7 +487,7 @@ export class ServiceDetailPage extends qreact.Component {
|
|
|
487
487
|
Poke
|
|
488
488
|
</button>
|
|
489
489
|
|
|
490
|
-
{configT.parameters.rollingWindow && rollingServiceCount > 0 && <button
|
|
490
|
+
{!!configT.parameters.rollingWindow && rollingServiceCount > 0 && <button
|
|
491
491
|
className={css.pad2(12, 8).button.bord2(0, 0, 20).hsl(0, 70, 90)}
|
|
492
492
|
onClick={() => {
|
|
493
493
|
void this.killAllRollingServices(config);
|
|
@@ -497,7 +497,7 @@ export class ServiceDetailPage extends qreact.Component {
|
|
|
497
497
|
{this.state.isKillingRolling ? "Killing..." : `💀 Kill ${rollingServiceCount} Rolling Service${rollingServiceCount === 1 ? "" : "s"}`}
|
|
498
498
|
</button>}
|
|
499
499
|
|
|
500
|
-
{configT.parameters.rollingWindow && <div>
|
|
500
|
+
{!!configT.parameters.rollingWindow && <div>
|
|
501
501
|
<div className={css.colorhsl(0, 50, 50).fontSize(14).fontWeight("bold")}>
|
|
502
502
|
IMPORTANT! Service has a rolling window, so updates might not appear immediately.
|
|
503
503
|
</div>
|
|
@@ -130,7 +130,7 @@ export class ServicesListPage extends qreact.Component {
|
|
|
130
130
|
{config.parameters.key}
|
|
131
131
|
</div>
|
|
132
132
|
<div>
|
|
133
|
-
{enabledMachineIds.length} configured {disabledMachines.length > 0 && `(+${disabledMachines.length} on disabled machines)`} {failingMachines.length > 0 && `(${failingMachines.length} failing)`} {missingMachines.length > 0 && `(${missingMachines.length} machine hasn't run service yet)`} {unknown > 0 && `(${unknown} unknown)`} • {totalLaunches} launches •
|
|
133
|
+
<span className={css.boldStyle.fontSize(14)}>{enabledMachineIds.length}</span> configured {disabledMachines.length > 0 && `(+${disabledMachines.length} on disabled machines)`} {failingMachines.length > 0 && `(${failingMachines.length} failing)`} {missingMachines.length > 0 && `(${missingMachines.length} machine hasn't run service yet)`} {unknown > 0 && `(${unknown} unknown)`} • {totalLaunches} launches •
|
|
134
134
|
Deploy: {config.parameters.deploy ? "enabled" : "disabled"}
|
|
135
135
|
</div>
|
|
136
136
|
</div>
|
|
@@ -136,8 +136,6 @@ export class FilePathSelector extends qreact.Component<{
|
|
|
136
136
|
<div>|</div>
|
|
137
137
|
<div>Machines: {formatNumber(grouped.length)}</div>
|
|
138
138
|
<div>|</div>
|
|
139
|
-
<div>Threads: {formatNumber(totals.uniqueThreads)}</div>
|
|
140
|
-
<div>|</div>
|
|
141
139
|
<div>Files: {formatNumber(this.props.paths.length)}</div>
|
|
142
140
|
<div>|</div>
|
|
143
141
|
<div>Pending: {formatNumber(totals.totalPending)}</div>
|
|
@@ -418,8 +416,7 @@ export class FilePathSelectorModal extends qreact.Component<{
|
|
|
418
416
|
<div className={css.vbox(5)}>
|
|
419
417
|
<div className={css.hbox(10)}>
|
|
420
418
|
<div className={css.minWidth(120)}>Machines: {formatNumber(summary.machineCount)}</div>
|
|
421
|
-
{
|
|
422
|
-
{/* <div className={css.minWidth(110)}>Threads: {formatNumber(summary.threadCount)}</div> */}
|
|
419
|
+
<div className={css.minWidth(110)}>Threads: {formatNumber(summary.threadCount)}</div>
|
|
423
420
|
<div className={css.minWidth(140)}>Files: {formatNumber(summary.fileCount)} ({formatNumber(summary.pendingCount)} pending)</div>
|
|
424
421
|
<div className={css.minWidth(120)}>Size: {this.props.formatBytes(summary.totalSize)}</div>
|
|
425
422
|
<div className={css.minWidth(100)}>Logs: {formatNumber(summary.totalLogCount)}</div>
|
|
@@ -288,7 +288,7 @@ export class LogViewer3 extends qreact.Component {
|
|
|
288
288
|
<span>is not moving logs to remote storage. {formatNumber(warning.count)} files ({formatNumber(warning.totalSize)}B) are {formatTime(now - warning.oldestTime)} old</span>
|
|
289
289
|
</div>
|
|
290
290
|
))}
|
|
291
|
-
<Button
|
|
291
|
+
{!isPublic() && !readPublicLogs.value && <Button
|
|
292
292
|
onClick={async () => {
|
|
293
293
|
Querysub.commitLocal(() => {
|
|
294
294
|
this.state.forceMoveStartTime = Date.now();
|
|
@@ -318,7 +318,7 @@ export class LogViewer3 extends qreact.Component {
|
|
|
318
318
|
hue={180}
|
|
319
319
|
>
|
|
320
320
|
Force Move Logs to Public
|
|
321
|
-
</Button>
|
|
321
|
+
</Button>}
|
|
322
322
|
{(() => {
|
|
323
323
|
if (this.state.forceMoveStartTime !== undefined && this.state.forceMoveEndTime === undefined) {
|
|
324
324
|
const elapsed = Date.now() - this.state.forceMoveStartTime;
|
|
@@ -691,6 +691,12 @@ export class LogViewer3 extends qreact.Component {
|
|
|
691
691
|
checkbox
|
|
692
692
|
label="Read Public Logs"
|
|
693
693
|
url={readPublicLogs}
|
|
694
|
+
onChangeValue={(newValue) => {
|
|
695
|
+
if (newValue) {
|
|
696
|
+
savedPathsURL.value = "";
|
|
697
|
+
void this.loadPaths();
|
|
698
|
+
}
|
|
699
|
+
}}
|
|
694
700
|
/>}
|
|
695
701
|
<InputLabelURL
|
|
696
702
|
label="Limit"
|
|
@@ -5,12 +5,13 @@ import { getOwnThreadId } from "../../../-f-node-discovery/NodeDiscovery";
|
|
|
5
5
|
import { BufferIndex } from "./BufferIndex";
|
|
6
6
|
import { LogStreamer } from "./LogStreamer";
|
|
7
7
|
import { TimeFileTree } from "./TimeFileTree";
|
|
8
|
-
import { green, magenta } from "socket-function/src/formatting/logColors";
|
|
8
|
+
import { blue, green, magenta } from "socket-function/src/formatting/logColors";
|
|
9
9
|
import { formatNumber, formatTime } from "socket-function/src/formatting/format";
|
|
10
10
|
|
|
11
11
|
|
|
12
12
|
|
|
13
13
|
export async function moveLogsToPublic(config: {
|
|
14
|
+
loggerName: string;
|
|
14
15
|
publicMoveThreshold: number;
|
|
15
16
|
maxSingleFileData: number;
|
|
16
17
|
movingTimeout: number;
|
|
@@ -128,7 +129,7 @@ export async function moveLogsToPublic(config: {
|
|
|
128
129
|
|
|
129
130
|
if (!await tryToGetMoveLock()) return;
|
|
130
131
|
|
|
131
|
-
console.log(magenta(`Moving ${localPaths.length} log files to public`));
|
|
132
|
+
console.log(magenta(`Moving ${localPaths.length} log files to public (${blue(config.loggerName)})`), { loggerName: config.loggerName, localPaths });
|
|
132
133
|
|
|
133
134
|
let byStartTime = keyByArray(localPaths, x => x.startTime);
|
|
134
135
|
|
|
@@ -20,23 +20,24 @@ IMPORTANT! Now I am properly calling shutdown, so none of the streamed logs shou
|
|
|
20
20
|
|
|
21
21
|
|
|
22
22
|
|
|
23
|
-
|
|
24
|
-
- Via our refresh loop
|
|
25
|
-
|
|
26
|
-
3) Deploy service for movelogs
|
|
27
|
-
"yarn movelogs"
|
|
28
|
-
|
|
29
|
-
0) Run move logs in function runner, in development, just so we don't get too far behind
|
|
30
|
-
|
|
31
|
-
|
|
23
|
+
UGH... I'm seeing the remote move logs saying that it moved a lot of files.
|
|
32
24
|
|
|
25
|
+
3) Ensure our moveloops are working correctly, on both dev and public
|
|
33
26
|
|
|
34
27
|
|
|
35
28
|
1) Fix missing __NAME__
|
|
36
|
-
|
|
37
|
-
|
|
29
|
+
"Received PathValue for path" misses name?
|
|
30
|
+
- Maybe the missing name only happens when we rate limit?
|
|
38
31
|
|
|
32
|
+
2) Create lot of remote server logs
|
|
33
|
+
- Via our refresh loop
|
|
39
34
|
|
|
35
|
+
3) Verify search is still fast, and works correctly!
|
|
36
|
+
- Try to get a rare value in that is in the logs, but is hard to find
|
|
37
|
+
Good rare search. Checks for sending emails, which we do very rarely. If we pack in 10GB of logs after this, it will really stress our indexing system.
|
|
38
|
+
- At the moment our pending index has a good hit rate (0 false positives out of 1720). We'll see if this continues for our remote index.
|
|
39
|
+
https://127-0-0-1.querysubtest.com:7007/?hot&readPublicLogs&showingmanagement&machineview=services&managementpage=LogViewer3&searchText=Sending%20email&selectedFields=%7B%22path%22%3Atrue%7D
|
|
40
|
+
|
|
40
41
|
|
|
41
42
|
|
|
42
43
|
Rewrite error notification code
|