From 77a7a9da4511bf5fc95afbced8098dd280e7de9b Mon Sep 17 00:00:00 2001 From: MTRNord Date: Thu, 20 Jul 2023 17:08:44 +0200 Subject: [PATCH] Try metrics again --- package.json | 2 +- src/appservice/cli.ts | 13 +++++++++ yarn.lock | 64 +++++++++++++------------------------------ 3 files changed, 33 insertions(+), 46 deletions(-) diff --git a/package.json b/package.json index d9989cf5..ae17b525 100644 --- a/package.json +++ b/package.json @@ -67,4 +67,4 @@ "engines": { "node": ">=18.0.0" } -} \ No newline at end of file +} diff --git a/src/appservice/cli.ts b/src/appservice/cli.ts index c47687c8..16057481 100644 --- a/src/appservice/cli.ts +++ b/src/appservice/cli.ts @@ -3,6 +3,8 @@ import { NodeSDK } from "@opentelemetry/sdk-node"; import { AlwaysOnSampler, Sampler, SamplingDecision } from '@opentelemetry/sdk-trace-base'; import { getNodeAutoInstrumentations } from '@opentelemetry/auto-instrumentations-node'; import { OTLPTraceExporter } from "@opentelemetry/exporter-trace-otlp-http"; +import { OTLPMetricExporter } from "@opentelemetry/exporter-metrics-otlp-http"; +import { PeriodicExportingMetricReader } from '@opentelemetry/sdk-metrics'; import { DiagConsoleLogger, DiagLogLevel, Attributes, SpanKind, diag } from '@opentelemetry/api'; import { SemanticAttributes } from '@opentelemetry/semantic-conventions'; @@ -45,16 +47,27 @@ if (process.env.TRACING_ENABLED) { console.error("Unable to start tracing without the env variable `TRACING_TRACE_URL` being set. Check https://opentelemetry.io/docs/instrumentation/js/exporters/ for more infomration."); process.exit(1); } + if (process.env.TRACING_METRIC_URL === undefined || process.env.TRACING_METRIC_URL === "") { + console.error("Unable to start tracing without the env variable `TRACING_METRIC_URL` being set. Check https://opentelemetry.io/docs/instrumentation/js/exporters/ for more infomration."); + process.exit(1); + } console.info(`Starting tracing and pushing to ${process.env.TRACING_TRACE_URL}`); const exporter = new OTLPTraceExporter({ //url: "/v1/traces", url: process.env.TRACING_TRACE_URL }); + const metrics_exporter = new OTLPMetricExporter({ + //url: "/v1/metrics", + url: process.env.TRACING_METRIC_URL + }); const sdk = new NodeSDK({ sampler: filterSampler(ignoreHealthCheck, new AlwaysOnSampler()), traceExporter: exporter, + metricReader: new PeriodicExportingMetricReader({ + exporter: metrics_exporter + }), serviceName: "Draupnir-Appservice", instrumentations: [getNodeAutoInstrumentations({ // This just prints an error diff --git a/yarn.lock b/yarn.lock index 23994d2a..edf23007 100644 --- a/yarn.lock +++ b/yarn.lock @@ -194,7 +194,7 @@ "@opentelemetry/api" "^1.0.0" tslib "^2.3.1" -"@opentelemetry/api@^1.0.0", "@opentelemetry/api@^1.0.1", "@opentelemetry/api@^1.1.0", "@opentelemetry/api@^1.3.0", "@opentelemetry/api@^1.4.1", "@opentelemetry/api@>=1.0.0 <1.5.0", "@opentelemetry/api@>=1.3.0 <1.5.0", "@opentelemetry/api@>=1.4.0 <1.5.0": +"@opentelemetry/api@^1.0.0", "@opentelemetry/api@^1.1.0", "@opentelemetry/api@^1.3.0", "@opentelemetry/api@^1.4.1", "@opentelemetry/api@>=1.0.0 <1.5.0", "@opentelemetry/api@>=1.3.0 <1.5.0", "@opentelemetry/api@>=1.4.0 <1.5.0": version "1.4.1" resolved "https://registry.npmjs.org/@opentelemetry/api/-/api-1.4.1.tgz" integrity sha512-O2yRJce1GOc6PAy3QxFM4NzFiWzvScDC1/5ihYBL6BUEVdq0XMWN01sppE+H6bBXbaFYipjwFLEWLg5PaSOThA== @@ -264,14 +264,6 @@ "@opentelemetry/semantic-conventions" "1.15.0" tslib "^2.3.1" -"@opentelemetry/core@0.24.0": - version "0.24.0" - resolved "https://registry.npmjs.org/@opentelemetry/core/-/core-0.24.0.tgz" - integrity sha512-KpsfxBbFTZT9zaB4Es/fFLbvSzVl9Io/8UUu/TYl4/HgqkmyVInNlWTgRiKyz9nsHzFpGP1kdZJj+YIut0IFsw== - dependencies: - "@opentelemetry/semantic-conventions" "0.24.0" - semver "^7.1.3" - "@opentelemetry/exporter-jaeger@1.15.0": version "1.15.0" resolved "https://registry.npmjs.org/@opentelemetry/exporter-jaeger/-/exporter-jaeger-1.15.0.tgz" @@ -283,6 +275,18 @@ jaeger-client "^3.15.0" tslib "^2.3.1" +"@opentelemetry/exporter-metrics-otlp-http@^0.41.0": + version "0.41.0" + resolved "https://registry.npmjs.org/@opentelemetry/exporter-metrics-otlp-http/-/exporter-metrics-otlp-http-0.41.0.tgz" + integrity sha512-YttGW1XEHB9GocXtEY+n0qAT2Ewi/P4l7882kYK4kEl78EAnVvvWvFX1El+TvHA3D2LHDxx9ASu1i+icCqj/Fw== + dependencies: + "@opentelemetry/core" "1.15.0" + "@opentelemetry/otlp-exporter-base" "0.41.0" + "@opentelemetry/otlp-transformer" "0.41.0" + "@opentelemetry/resources" "1.15.0" + "@opentelemetry/sdk-metrics" "1.15.0" + tslib "^2.3.1" + "@opentelemetry/exporter-trace-otlp-grpc@0.41.0": version "0.41.0" resolved "https://registry.npmjs.org/@opentelemetry/exporter-trace-otlp-grpc/-/exporter-trace-otlp-grpc-0.41.0.tgz" @@ -826,14 +830,6 @@ "@opentelemetry/semantic-conventions" "1.15.0" tslib "^2.3.1" -"@opentelemetry/resources@0.24.0": - version "0.24.0" - resolved "https://registry.npmjs.org/@opentelemetry/resources/-/resources-0.24.0.tgz" - integrity sha512-uEr2m13IRkjQAjX6fsYqJ21aONCspRvuQunaCl8LbH1NS1Gj82TuRUHF6TM82ulBPK8pU+nrrqXKuky2cMcIzw== - dependencies: - "@opentelemetry/core" "0.24.0" - "@opentelemetry/semantic-conventions" "0.24.0" - "@opentelemetry/sdk-logs@0.41.0": version "0.41.0" resolved "https://registry.npmjs.org/@opentelemetry/sdk-logs/-/sdk-logs-0.41.0.tgz" @@ -902,11 +898,6 @@ dependencies: tslib "^2.3.1" -"@opentelemetry/semantic-conventions@0.24.0": - version "0.24.0" - resolved "https://registry.npmjs.org/@opentelemetry/semantic-conventions/-/semantic-conventions-0.24.0.tgz" - integrity sha512-a/szuMQV0Quy0/M7kKdglcbRSoorleyyOwbTNNJ32O+RBN766wbQlMTvdimImTmwYWGr+NJOni1EcC242WlRcA== - "@opentelemetry/sql-common@^0.40.0": version "0.40.0" resolved "https://registry.npmjs.org/@opentelemetry/sql-common/-/sql-common-0.40.0.tgz" @@ -914,16 +905,6 @@ dependencies: "@opentelemetry/core" "^1.1.0" -"@opentelemetry/tracing@^0.24.0": - version "0.24.0" - resolved "https://registry.npmjs.org/@opentelemetry/tracing/-/tracing-0.24.0.tgz" - integrity sha512-sTLEs1SIon3xV8vLe53PzfbU0FahoxL9NPY/CYvA1mwGbMu4zHkHAjqy1Tc8JmqRrfa+XrHkmzeSM4hrvloBaA== - dependencies: - "@opentelemetry/core" "0.24.0" - "@opentelemetry/resources" "0.24.0" - "@opentelemetry/semantic-conventions" "0.24.0" - lodash.merge "^4.6.2" - "@protobufjs/aspromise@^1.1.1", "@protobufjs/aspromise@^1.1.2": version "1.1.2" resolved "https://registry.npmjs.org/@protobufjs/aspromise/-/aspromise-1.1.2.tgz" @@ -4406,21 +4387,14 @@ selderee@^0.6.0: parseley "^0.7.0" semver@^5.3.0, semver@^5.6.0: - version "5.7.2" - resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.2.tgz#48d55db737c3287cd4835e17fa13feace1c41ef8" - integrity sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g== - -semver@^7.1.3: - version "7.5.4" - resolved "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz" - integrity sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA== - dependencies: - lru-cache "^6.0.0" + version "5.7.1" + resolved "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz" + integrity sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ== semver@^7.2.1: - version "7.5.4" - resolved "https://registry.yarnpkg.com/semver/-/semver-7.5.4.tgz#483986ec4ed38e1c6c48c34894a9182dbff68a6e" - integrity sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA== + version "7.3.5" + resolved "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz" + integrity sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ== dependencies: lru-cache "^6.0.0"