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 CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "querysub",
3
- "version": "0.370.0",
3
+ "version": "0.372.0",
4
4
  "main": "index.js",
5
5
  "license": "MIT",
6
6
  "note1": "note on node-forge fork, see https://github.com/digitalbazaar/forge/issues/744 for details",
@@ -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
- {/* NOTE: If the files have been merged, the thread count doesn't matter anymore, so it's deceiving to put the thread count here. */}
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>
@@ -588,6 +588,7 @@ export class IndexedLogs<T> {
588
588
  }
589
589
 
590
590
  await moveLogsToPublic({
591
+ loggerName: this.config.name,
591
592
  forceAll,
592
593
  localLogs: this.getLocalLogs(),
593
594
  publicLogs: this.getPublicLogs(),
@@ -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
- 2) Create lot of remote server logs
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
- "Received PathValue for path" misses name?
37
- - Maybe the missing name only happens when we rate limit?
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