Skip to content

Commit

Permalink
fix(cosmic-swingset): use @agoric/telemetry
Browse files Browse the repository at this point in the history
  • Loading branch information
michaelfig committed Jan 18, 2022
1 parent 4e382dc commit e22742a
Show file tree
Hide file tree
Showing 4 changed files with 13 additions and 43 deletions.
2 changes: 1 addition & 1 deletion packages/cosmic-swingset/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -34,10 +34,10 @@
"@agoric/store": "^0.6.8",
"@agoric/swing-store": "^0.6.3",
"@agoric/swingset-vat": "^0.24.1",
"@agoric/telemetry": "^0.1.0",
"@agoric/vats": "^0.5.1",
"@agoric/xsnap": "^0.11.0",
"@iarna/toml": "^2.2.3",
"@opentelemetry/exporter-prometheus": "^0.16.0",
"@opentelemetry/metrics": "^0.16.0",
"agoric": "^0.13.21",
"anylogger": "^0.21.0",
Expand Down
6 changes: 3 additions & 3 deletions packages/cosmic-swingset/src/chain-main.js
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ import { assert, details as X } from '@agoric/assert';

import { launch } from './launch-chain.js';
import makeBlockManager from './block-manager.js';
import { getMeterProvider } from './kernel-stats.js';
import { getTelemetryProviders } from './kernel-stats.js';

const AG_COSMOS_INIT = 'AG_COSMOS_INIT';

Expand Down Expand Up @@ -248,7 +248,7 @@ export default async function main(progname, args, { env, homedir, agcc }) {
import.meta.url,
),
).pathname;
const meterProvider = getMeterProvider(console, env);
const { metricsProvider } = getTelemetryProviders({ console, env });
const slogFile = env.SLOGFILE;
const consensusMode = env.DEBUG === undefined;
const s = await launch(
Expand All @@ -259,7 +259,7 @@ export default async function main(progname, args, { env, homedir, agcc }) {
vatconfig,
argv,
undefined,
meterProvider,
metricsProvider,
slogFile,
consensusMode,
);
Expand Down
39 changes: 3 additions & 36 deletions packages/cosmic-swingset/src/kernel-stats.js
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
// @ts-check
import { MeterProvider } from '@opentelemetry/metrics';
import { PrometheusExporter } from '@opentelemetry/exporter-prometheus';

import { makeLegacyMap } from '@agoric/store';

Expand All @@ -8,6 +8,8 @@ import {
KERNEL_STATS_UPDOWN_METRICS,
} from '@agoric/swingset-vat/src/kernel/metrics.js';

export { getTelemetryProviders } from '@agoric/telemetry';

/**
* TODO Would be nice somehow to label the vats individually, but it's too
* high cardinality for us unless we can somehow limit the number of active
Expand Down Expand Up @@ -261,38 +263,3 @@ export function exportKernelStats({

return { schedulerCrankTimeHistogram, schedulerBlockTimeHistogram };
}

/**
* Interpret the meter provider environment variables.
*
* @param {{ log: Console['log'] }} console
* @param {Record<string, string>} env
*/
export function getMeterProvider(console, env) {
if (
!env.OTEL_EXPORTER_PROMETHEUS_HOST &&
!env.OTEL_EXPORTER_PROMETHEUS_PORT
) {
return undefined;
}
const host =
env.OTEL_EXPORTER_PROMETHEUS_HOST ||
PrometheusExporter.DEFAULT_OPTIONS.host ||
'0.0.0.0';
const port =
Number(env.OTEL_EXPORTER_PROMETHEUS_PORT) ||
PrometheusExporter.DEFAULT_OPTIONS.port;
const exporter = new PrometheusExporter(
{
startServer: true,
host,
port,
},
() => {
console.log(
`Prometheus scrape endpoint: http://${host}:${port}${PrometheusExporter.DEFAULT_OPTIONS.endpoint}`,
);
},
);
return new MeterProvider({ exporter, interval: 1000 });
}
9 changes: 6 additions & 3 deletions packages/cosmic-swingset/src/sim-chain.js
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ import { makeWithQueue } from '@agoric/vats/src/queue.js';
import { makeBatchedDeliver } from '@agoric/vats/src/batched-deliver.js';
import { launch } from './launch-chain.js';
import makeBlockManager from './block-manager.js';
import { getMeterProvider } from './kernel-stats.js';
import { getTelemetryProviders } from './kernel-stats.js';
import { DEFAULT_SIM_SWINGSET_PARAMS } from './sim-params.js';

const console = anylogger('fake-chain');
Expand Down Expand Up @@ -79,7 +79,10 @@ export async function connectToFakeChain(basedir, GCI, delay, inbound) {
assert(!replay, X`Replay not implemented`);
}

const meterProvider = getMeterProvider(console, process.env);
const { metricsProvider } = getTelemetryProviders({
console,
env: process.env,
});
const s = await launch(
stateDBdir,
mailboxStorage,
Expand All @@ -88,7 +91,7 @@ export async function connectToFakeChain(basedir, GCI, delay, inbound) {
vatconfig,
argv,
GCI, // debugName
meterProvider,
metricsProvider,
);

const { savedHeight, savedActions, savedChainSends } = s;
Expand Down

0 comments on commit e22742a

Please sign in to comment.