From 6c9444e9532259d791752e5a3b73c729b861fe29 Mon Sep 17 00:00:00 2001 From: Richard Gibson Date: Tue, 4 Feb 2025 12:50:03 -0500 Subject: [PATCH 1/3] chore: Update OpenTelemetry dependencies Fixes #10937 --- packages/cosmic-swingset/package.json | 4 +- packages/telemetry/package.json | 20 +- packages/telemetry/src/index.js | 1 + packages/telemetry/src/otel-trace.js | 2 +- yarn.lock | 256 ++++++++++---------------- 5 files changed, 112 insertions(+), 171 deletions(-) diff --git a/packages/cosmic-swingset/package.json b/packages/cosmic-swingset/package.json index df68ff0f7ac..d70c2b7b61e 100644 --- a/packages/cosmic-swingset/package.json +++ b/packages/cosmic-swingset/package.json @@ -42,8 +42,8 @@ "@endo/patterns": "^1.4.8", "@endo/promise-kit": "^1.1.9", "@iarna/toml": "^2.2.3", - "@opentelemetry/api": "~1.3.0", - "@opentelemetry/sdk-metrics": "~1.9.0", + "@opentelemetry/api": "~1.9.0", + "@opentelemetry/sdk-metrics": "~1.30.1", "anylogger": "^0.21.0", "deterministic-json": "^1.0.5", "import-meta-resolve": "^2.2.1", diff --git a/packages/telemetry/package.json b/packages/telemetry/package.json index ee476375457..55ac100f817 100644 --- a/packages/telemetry/package.json +++ b/packages/telemetry/package.json @@ -28,16 +28,16 @@ "@endo/init": "^1.1.8", "@endo/marshal": "^1.6.3", "@endo/stream": "^1.2.9", - "@opentelemetry/api": "~1.3.0", - "@opentelemetry/api-logs": "0.53.0", - "@opentelemetry/exporter-prometheus": "~0.35.0", - "@opentelemetry/exporter-logs-otlp-http": "0.53.0", - "@opentelemetry/exporter-trace-otlp-http": "~0.35.0", - "@opentelemetry/resources": "~1.9.0", - "@opentelemetry/sdk-logs": "0.53.0", - "@opentelemetry/sdk-metrics": "~1.9.0", - "@opentelemetry/sdk-trace-base": "~1.9.0", - "@opentelemetry/semantic-conventions": "~1.27.0", + "@opentelemetry/api": "~1.9.0", + "@opentelemetry/api-logs": "0.57.1", + "@opentelemetry/exporter-prometheus": "~0.57.1", + "@opentelemetry/exporter-logs-otlp-http": "0.57.1", + "@opentelemetry/exporter-trace-otlp-http": "0.57.1", + "@opentelemetry/resources": "~1.30.1", + "@opentelemetry/sdk-logs": "0.57.1", + "@opentelemetry/sdk-metrics": "~1.30.1", + "@opentelemetry/sdk-trace-base": "~1.30.1", + "@opentelemetry/semantic-conventions": "~1.28.0", "anylogger": "^0.21.0", "better-sqlite3": "^9.1.1", "tmp": "^0.2.1" diff --git a/packages/telemetry/src/index.js b/packages/telemetry/src/index.js index 82e58ff7449..13d69ad05a1 100644 --- a/packages/telemetry/src/index.js +++ b/packages/telemetry/src/index.js @@ -111,6 +111,7 @@ const getPrometheusMeterProvider = ({ const exporter = new PrometheusExporter( { port, + appendTimestamp: true, }, () => { console.warn( diff --git a/packages/telemetry/src/otel-trace.js b/packages/telemetry/src/otel-trace.js index 03fa348f082..cd6961ad037 100644 --- a/packages/telemetry/src/otel-trace.js +++ b/packages/telemetry/src/otel-trace.js @@ -31,7 +31,7 @@ export const makeOtelTracingProvider = opts => { const resource = new Resource(getResourceAttributes(opts)); const exporter = new OTLPTraceExporter(); - console.info('Enabling OTLP Traces Exporter to', exporter.getDefaultUrl({})); + console.info('Enabling OTLP Traces Exporter'); const provider = new BasicTracerProvider({ resource }); provider.addSpanProcessor( diff --git a/yarn.lock b/yarn.lock index 54f429820d2..ea8117f2ede 100644 --- a/yarn.lock +++ b/yarn.lock @@ -3099,175 +3099,115 @@ dependencies: "@octokit/openapi-types" "^18.0.0" -"@opentelemetry/api-logs@0.53.0": - version "0.53.0" - resolved "https://registry.yarnpkg.com/@opentelemetry/api-logs/-/api-logs-0.53.0.tgz#c478cbd8120ec2547b64edfa03a552cfe42170be" - integrity sha512-8HArjKx+RaAI8uEIgcORbZIPklyh1YLjPSBus8hjRmvLi6DeFzgOcdZ7KwPabKj8mXF8dX0hyfAyGfycz0DbFw== +"@opentelemetry/api-logs@0.57.1": + version "0.57.1" + resolved "https://registry.yarnpkg.com/@opentelemetry/api-logs/-/api-logs-0.57.1.tgz#97ebd714f0b1fcdf896e85c465ae5c5b22747425" + integrity sha512-I4PHczeujhQAQv6ZBzqHYEUiggZL4IdSMixtVD3EYqbdrjujE7kRfI5QohjlPoJm8BvenoW5YaTMWRrbpot6tg== dependencies: - "@opentelemetry/api" "^1.0.0" + "@opentelemetry/api" "^1.3.0" -"@opentelemetry/api@^1.0.0": - version "1.4.1" - resolved "https://registry.yarnpkg.com/@opentelemetry/api/-/api-1.4.1.tgz#ff22eb2e5d476fbc2450a196e40dd243cc20c28f" - integrity sha512-O2yRJce1GOc6PAy3QxFM4NzFiWzvScDC1/5ihYBL6BUEVdq0XMWN01sppE+H6bBXbaFYipjwFLEWLg5PaSOThA== - -"@opentelemetry/api@~1.3.0": - version "1.3.0" - resolved "https://registry.yarnpkg.com/@opentelemetry/api/-/api-1.3.0.tgz#27c6f776ac3c1c616651e506a89f438a0ed6a055" - integrity sha512-YveTnGNsFFixTKJz09Oi4zYkiLT5af3WpZDu4aIUM7xX+2bHAkOJayFTVQd6zB8kkWPpbua4Ha6Ql00grdLlJQ== - -"@opentelemetry/core@1.26.0": - version "1.26.0" - resolved "https://registry.yarnpkg.com/@opentelemetry/core/-/core-1.26.0.tgz#7d84265aaa850ed0ca5813f97d831155be42b328" - integrity sha512-1iKxXXE8415Cdv0yjG3G6hQnB5eVEsJce3QaawX8SjDn0mAS0ZM8fAbZZJD4ajvhC15cePvosSCut404KrIIvQ== - dependencies: - "@opentelemetry/semantic-conventions" "1.27.0" - -"@opentelemetry/core@1.9.1": - version "1.9.1" - resolved "https://registry.yarnpkg.com/@opentelemetry/core/-/core-1.9.1.tgz#e343337e1a7bf30e9a6aef3ef659b9b76379762a" - integrity sha512-6/qon6tw2I8ZaJnHAQUUn4BqhTbTNRS0WP8/bA0ynaX+Uzp/DDbd0NS0Cq6TMlh8+mrlsyqDE7mO50nmv2Yvlg== - dependencies: - "@opentelemetry/semantic-conventions" "1.9.1" - -"@opentelemetry/exporter-logs-otlp-http@0.53.0": - version "0.53.0" - resolved "https://registry.yarnpkg.com/@opentelemetry/exporter-logs-otlp-http/-/exporter-logs-otlp-http-0.53.0.tgz#1b4a152ea427ec4581532880fd0d620cc559cb11" - integrity sha512-cSRKgD/n8rb+Yd+Cif6EnHEL/VZg1o8lEcEwFji1lwene6BdH51Zh3feAD9p2TyVoBKrl6Q9Zm2WltSp2k9gWQ== - dependencies: - "@opentelemetry/api-logs" "0.53.0" - "@opentelemetry/core" "1.26.0" - "@opentelemetry/otlp-exporter-base" "0.53.0" - "@opentelemetry/otlp-transformer" "0.53.0" - "@opentelemetry/sdk-logs" "0.53.0" - -"@opentelemetry/exporter-prometheus@~0.35.0": - version "0.35.1" - resolved "https://registry.yarnpkg.com/@opentelemetry/exporter-prometheus/-/exporter-prometheus-0.35.1.tgz#c2fd5fcd17dac8106b33e5d354d98c47ebaa8804" - integrity sha512-HeCM+1C19Ccj1D3lz450HaPZSxHvd9nGalRKMYUWc4ipga6rJIUHDAaIm4uanRaEgesrRnullkO4/G0dJsYKsg== - dependencies: - "@opentelemetry/core" "1.9.1" - "@opentelemetry/resources" "1.9.1" - "@opentelemetry/sdk-metrics" "1.9.1" - -"@opentelemetry/exporter-trace-otlp-http@~0.35.0": - version "0.35.1" - resolved "https://registry.yarnpkg.com/@opentelemetry/exporter-trace-otlp-http/-/exporter-trace-otlp-http-0.35.1.tgz#9bf988f91fb145b29a051bce8ff5ef85029ca575" - integrity sha512-EJgAsrvscKsqb/GzF1zS74vM+Z/aQRhrFE7hs/1GK1M9bLixaVyMGwg2pxz1wdYdjxS1mqpHMhXU+VvMvFCw1w== - dependencies: - "@opentelemetry/core" "1.9.1" - "@opentelemetry/otlp-exporter-base" "0.35.1" - "@opentelemetry/otlp-transformer" "0.35.1" - "@opentelemetry/resources" "1.9.1" - "@opentelemetry/sdk-trace-base" "1.9.1" - -"@opentelemetry/otlp-exporter-base@0.35.1": - version "0.35.1" - resolved "https://registry.yarnpkg.com/@opentelemetry/otlp-exporter-base/-/otlp-exporter-base-0.35.1.tgz#535166608d5d36e6c959b2857d01245ee3a916b1" - integrity sha512-Sc0buJIs8CfUeQCL/12vDDjBREgsqHdjboBa/kPQDgMf008OBJSM02Ijj6T1TH+QVHl/VHBBEVJF+FTf0EH9Vg== - dependencies: - "@opentelemetry/core" "1.9.1" - -"@opentelemetry/otlp-exporter-base@0.53.0": - version "0.53.0" - resolved "https://registry.yarnpkg.com/@opentelemetry/otlp-exporter-base/-/otlp-exporter-base-0.53.0.tgz#dfe51874b869c687c3cb463b70cddda7de282762" - integrity sha512-UCWPreGQEhD6FjBaeDuXhiMf6kkBODF0ZQzrk/tuQcaVDJ+dDQ/xhJp192H9yWnKxVpEjFrSSLnpqmX4VwX+eA== - dependencies: - "@opentelemetry/core" "1.26.0" - "@opentelemetry/otlp-transformer" "0.53.0" - -"@opentelemetry/otlp-transformer@0.35.1": - version "0.35.1" - resolved "https://registry.yarnpkg.com/@opentelemetry/otlp-transformer/-/otlp-transformer-0.35.1.tgz#d4333b71324b83dbb1b0b3a4cfd769b3e214c6f9" - integrity sha512-c0HXcJ49MKoWSaA49J8PXlVx48CeEFpL0odP6KBkVT+Bw6kAe8JlI3mIezyN05VCDJGtS2I5E6WEsE+DJL1t9A== - dependencies: - "@opentelemetry/core" "1.9.1" - "@opentelemetry/resources" "1.9.1" - "@opentelemetry/sdk-metrics" "1.9.1" - "@opentelemetry/sdk-trace-base" "1.9.1" - -"@opentelemetry/otlp-transformer@0.53.0": - version "0.53.0" - resolved "https://registry.yarnpkg.com/@opentelemetry/otlp-transformer/-/otlp-transformer-0.53.0.tgz#55d435db5ed5cf56b99c010827294dd4921c45c2" - integrity sha512-rM0sDA9HD8dluwuBxLetUmoqGJKSAbWenwD65KY9iZhUxdBHRLrIdrABfNDP7aiTjcgK8XFyTn5fhDz7N+W6DA== - dependencies: - "@opentelemetry/api-logs" "0.53.0" - "@opentelemetry/core" "1.26.0" - "@opentelemetry/resources" "1.26.0" - "@opentelemetry/sdk-logs" "0.53.0" - "@opentelemetry/sdk-metrics" "1.26.0" - "@opentelemetry/sdk-trace-base" "1.26.0" +"@opentelemetry/api@^1.3.0", "@opentelemetry/api@~1.9.0": + version "1.9.0" + resolved "https://registry.yarnpkg.com/@opentelemetry/api/-/api-1.9.0.tgz#d03eba68273dc0f7509e2a3d5cba21eae10379fe" + integrity sha512-3giAOQvZiH5F9bMlMiv8+GSPMeqg0dbaeo58/0SlA9sxSqZhnUtxzX9/2FzyhS9sWQf5S0GJE0AKBrFqjpeYcg== + +"@opentelemetry/core@1.30.1": + version "1.30.1" + resolved "https://registry.yarnpkg.com/@opentelemetry/core/-/core-1.30.1.tgz#a0b468bb396358df801881709ea38299fc30ab27" + integrity sha512-OOCM2C/QIURhJMuKaekP3TRBxBKxG/TWWA0TL2J6nXUtDnuCtccy49LUJF8xPFXMX+0LMcxFpCo8M9cGY1W6rQ== + dependencies: + "@opentelemetry/semantic-conventions" "1.28.0" + +"@opentelemetry/exporter-logs-otlp-http@0.57.1": + version "0.57.1" + resolved "https://registry.yarnpkg.com/@opentelemetry/exporter-logs-otlp-http/-/exporter-logs-otlp-http-0.57.1.tgz#adf97fdef688e84dd02b05aa0afb35fb0f798e5c" + integrity sha512-u8Cr6yDX57/n89aSJwAQNHQIYodcl6o8jTcaPKNktMvNfd7ny3R7aE7GKBC5Wg0zejP9heBgyN0OGwrPhptx7A== + dependencies: + "@opentelemetry/api-logs" "0.57.1" + "@opentelemetry/core" "1.30.1" + "@opentelemetry/otlp-exporter-base" "0.57.1" + "@opentelemetry/otlp-transformer" "0.57.1" + "@opentelemetry/sdk-logs" "0.57.1" + +"@opentelemetry/exporter-prometheus@~0.57.1": + version "0.57.1" + resolved "https://registry.yarnpkg.com/@opentelemetry/exporter-prometheus/-/exporter-prometheus-0.57.1.tgz#c58e4390cefeeae35f03c0bb26f0b2d873636d51" + integrity sha512-lwwOQzyvhzioGCYmIh7mXo+RLSoEVhuO0dFzWeEiQhFkjSUOPgKQKNTgYtl2KO1L7XIbHp5LIgn4nZrYx191Rg== + dependencies: + "@opentelemetry/core" "1.30.1" + "@opentelemetry/resources" "1.30.1" + "@opentelemetry/sdk-metrics" "1.30.1" + +"@opentelemetry/exporter-trace-otlp-http@0.57.1": + version "0.57.1" + resolved "https://registry.yarnpkg.com/@opentelemetry/exporter-trace-otlp-http/-/exporter-trace-otlp-http-0.57.1.tgz#111ffc7fb23143958bb095d435aeaacfa56df83f" + integrity sha512-43dLEjlf6JGxpVt9RaRlJAvjHG1wGsbAuNd67RIDy/95zfKk2aNovtiGUgFdS/kcvgvS90upIUbgn0xUd9JjMg== + dependencies: + "@opentelemetry/core" "1.30.1" + "@opentelemetry/otlp-exporter-base" "0.57.1" + "@opentelemetry/otlp-transformer" "0.57.1" + "@opentelemetry/resources" "1.30.1" + "@opentelemetry/sdk-trace-base" "1.30.1" + +"@opentelemetry/otlp-exporter-base@0.57.1": + version "0.57.1" + resolved "https://registry.yarnpkg.com/@opentelemetry/otlp-exporter-base/-/otlp-exporter-base-0.57.1.tgz#dd65bc98392e4ba866f1e964117c15c7adf87321" + integrity sha512-GNBJAEYfeiYJQ3O2dvXgiNZ/qjWrBxSb1L1s7iV/jKBRGMN3Nv+miTk2SLeEobF5E5ZK4rVcHKlBZ71bPVIv/g== + dependencies: + "@opentelemetry/core" "1.30.1" + "@opentelemetry/otlp-transformer" "0.57.1" + +"@opentelemetry/otlp-transformer@0.57.1": + version "0.57.1" + resolved "https://registry.yarnpkg.com/@opentelemetry/otlp-transformer/-/otlp-transformer-0.57.1.tgz#665d6443da9f67b83d098e86727953c73fa2564f" + integrity sha512-EX67y+ukNNfFrOLyjYGw8AMy0JPIlEX1dW60SGUNZWW2hSQyyolX7EqFuHP5LtXLjJHNfzx5SMBVQ3owaQCNDw== + dependencies: + "@opentelemetry/api-logs" "0.57.1" + "@opentelemetry/core" "1.30.1" + "@opentelemetry/resources" "1.30.1" + "@opentelemetry/sdk-logs" "0.57.1" + "@opentelemetry/sdk-metrics" "1.30.1" + "@opentelemetry/sdk-trace-base" "1.30.1" protobufjs "^7.3.0" -"@opentelemetry/resources@1.26.0": - version "1.26.0" - resolved "https://registry.yarnpkg.com/@opentelemetry/resources/-/resources-1.26.0.tgz#da4c7366018bd8add1f3aa9c91c6ac59fd503cef" - integrity sha512-CPNYchBE7MBecCSVy0HKpUISEeJOniWqcHaAHpmasZ3j9o6V3AyBzhRc90jdmemq0HOxDr6ylhUbDhBqqPpeNw== +"@opentelemetry/resources@1.30.1", "@opentelemetry/resources@~1.30.1": + version "1.30.1" + resolved "https://registry.yarnpkg.com/@opentelemetry/resources/-/resources-1.30.1.tgz#a4eae17ebd96947fdc7a64f931ca4b71e18ce964" + integrity sha512-5UxZqiAgLYGFjS4s9qm5mBVo433u+dSPUFWVWXmLAD4wB65oMCoXaJP1KJa9DIYYMeHu3z4BZcStG3LC593cWA== dependencies: - "@opentelemetry/core" "1.26.0" - "@opentelemetry/semantic-conventions" "1.27.0" + "@opentelemetry/core" "1.30.1" + "@opentelemetry/semantic-conventions" "1.28.0" -"@opentelemetry/resources@1.9.1", "@opentelemetry/resources@~1.9.0": - version "1.9.1" - resolved "https://registry.yarnpkg.com/@opentelemetry/resources/-/resources-1.9.1.tgz#5ad3d80ba968a3a0e56498ce4bc82a6a01f2682f" - integrity sha512-VqBGbnAfubI+l+yrtYxeLyOoL358JK57btPMJDd3TCOV3mV5TNBmzvOfmesM4NeTyXuGJByd3XvOHvFezLn3rQ== +"@opentelemetry/sdk-logs@0.57.1": + version "0.57.1" + resolved "https://registry.yarnpkg.com/@opentelemetry/sdk-logs/-/sdk-logs-0.57.1.tgz#e77ca16d3cd001d558eb04028eacb350eb5e060d" + integrity sha512-jGdObb/BGWu6Peo3cL3skx/Rl1Ak/wDDO3vpPrrThGbqE7isvkCsX6uE+OAt8Ayjm9YC8UGkohWbLR09JmM0FA== dependencies: - "@opentelemetry/core" "1.9.1" - "@opentelemetry/semantic-conventions" "1.9.1" + "@opentelemetry/api-logs" "0.57.1" + "@opentelemetry/core" "1.30.1" + "@opentelemetry/resources" "1.30.1" -"@opentelemetry/sdk-logs@0.53.0": - version "0.53.0" - resolved "https://registry.yarnpkg.com/@opentelemetry/sdk-logs/-/sdk-logs-0.53.0.tgz#ec8b69278c4e683c13c58ed4285a47c27f5799c6" - integrity sha512-dhSisnEgIj/vJZXZV6f6KcTnyLDx/VuQ6l3ejuZpMpPlh9S1qMHiZU9NMmOkVkwwHkMy3G6mEBwdP23vUZVr4g== +"@opentelemetry/sdk-metrics@1.30.1", "@opentelemetry/sdk-metrics@~1.30.1": + version "1.30.1" + resolved "https://registry.yarnpkg.com/@opentelemetry/sdk-metrics/-/sdk-metrics-1.30.1.tgz#70e2bcd275b9df6e7e925e3fe53cfe71329b5fc8" + integrity sha512-q9zcZ0Okl8jRgmy7eNW3Ku1XSgg3sDLa5evHZpCwjspw7E8Is4K/haRPDJrBcX3YSn/Y7gUvFnByNYEKQNbNog== dependencies: - "@opentelemetry/api-logs" "0.53.0" - "@opentelemetry/core" "1.26.0" - "@opentelemetry/resources" "1.26.0" + "@opentelemetry/core" "1.30.1" + "@opentelemetry/resources" "1.30.1" -"@opentelemetry/sdk-metrics@1.26.0": - version "1.26.0" - resolved "https://registry.yarnpkg.com/@opentelemetry/sdk-metrics/-/sdk-metrics-1.26.0.tgz#37bb0afb1d4447f50aab9cdd05db6f2d8b86103e" - integrity sha512-0SvDXmou/JjzSDOjUmetAAvcKQW6ZrvosU0rkbDGpXvvZN+pQF6JbK/Kd4hNdK4q/22yeruqvukXEJyySTzyTQ== +"@opentelemetry/sdk-trace-base@1.30.1", "@opentelemetry/sdk-trace-base@~1.30.1": + version "1.30.1" + resolved "https://registry.yarnpkg.com/@opentelemetry/sdk-trace-base/-/sdk-trace-base-1.30.1.tgz#41a42234096dc98e8f454d24551fc80b816feb34" + integrity sha512-jVPgBbH1gCy2Lb7X0AVQ8XAfgg0pJ4nvl8/IiQA6nxOsPvS+0zMJaFSs2ltXe0J6C8dqjcnpyqINDJmU30+uOg== dependencies: - "@opentelemetry/core" "1.26.0" - "@opentelemetry/resources" "1.26.0" + "@opentelemetry/core" "1.30.1" + "@opentelemetry/resources" "1.30.1" + "@opentelemetry/semantic-conventions" "1.28.0" -"@opentelemetry/sdk-metrics@1.9.1", "@opentelemetry/sdk-metrics@~1.9.0": - version "1.9.1" - resolved "https://registry.yarnpkg.com/@opentelemetry/sdk-metrics/-/sdk-metrics-1.9.1.tgz#babc162a81df9884c16b1e67c2dd26ab478f3080" - integrity sha512-AyhKDcA8NuV7o1+9KvzRMxNbATJ8AcrutKilJ6hWSo9R5utnzxgffV4y+Hp4mJn84iXxkv+CBb99GOJ2A5OMzA== - dependencies: - "@opentelemetry/core" "1.9.1" - "@opentelemetry/resources" "1.9.1" - lodash.merge "4.6.2" - -"@opentelemetry/sdk-trace-base@1.26.0": - version "1.26.0" - resolved "https://registry.yarnpkg.com/@opentelemetry/sdk-trace-base/-/sdk-trace-base-1.26.0.tgz#0c913bc6d2cfafd901de330e4540952269ae579c" - integrity sha512-olWQldtvbK4v22ymrKLbIcBi9L2SpMO84sCPY54IVsJhP9fRsxJT194C/AVaAuJzLE30EdhhM1VmvVYR7az+cw== - dependencies: - "@opentelemetry/core" "1.26.0" - "@opentelemetry/resources" "1.26.0" - "@opentelemetry/semantic-conventions" "1.27.0" - -"@opentelemetry/sdk-trace-base@1.9.1", "@opentelemetry/sdk-trace-base@~1.9.0": - version "1.9.1" - resolved "https://registry.yarnpkg.com/@opentelemetry/sdk-trace-base/-/sdk-trace-base-1.9.1.tgz#c349491b432a7e0ae7316f0b48b2d454d79d2b84" - integrity sha512-Y9gC5M1efhDLYHeeo2MWcDDMmR40z6QpqcWnPCm4Dmh+RHAMf4dnEBBntIe1dDpor686kyU6JV1D29ih1lZpsQ== - dependencies: - "@opentelemetry/core" "1.9.1" - "@opentelemetry/resources" "1.9.1" - "@opentelemetry/semantic-conventions" "1.9.1" - -"@opentelemetry/semantic-conventions@1.27.0", "@opentelemetry/semantic-conventions@~1.27.0": - version "1.27.0" - resolved "https://registry.yarnpkg.com/@opentelemetry/semantic-conventions/-/semantic-conventions-1.27.0.tgz#1a857dcc95a5ab30122e04417148211e6f945e6c" - integrity sha512-sAay1RrB+ONOem0OZanAR1ZI/k7yDpnOQSQmTMuGImUQb2y8EbSaCJ94FQluM74xoU03vlb2d2U90hZluL6nQg== - -"@opentelemetry/semantic-conventions@1.9.1": - version "1.9.1" - resolved "https://registry.yarnpkg.com/@opentelemetry/semantic-conventions/-/semantic-conventions-1.9.1.tgz#ad3367684a57879392513479e0a436cb2ac46dad" - integrity sha512-oPQdbFDmZvjXk5ZDoBGXG8B4tSB/qW5vQunJWQMFUBp7Xe8O1ByPANueJ+Jzg58esEBegyyxZ7LRmfJr7kFcFg== +"@opentelemetry/semantic-conventions@1.28.0", "@opentelemetry/semantic-conventions@~1.28.0": + version "1.28.0" + resolved "https://registry.yarnpkg.com/@opentelemetry/semantic-conventions/-/semantic-conventions-1.28.0.tgz#337fb2bca0453d0726696e745f50064411f646d6" + integrity sha512-lp4qAiMTD4sNWW4DbKLBkfiMZ4jbAboJIGOQr5DvciMRI494OapieI9qiODpOt0XBr1LjIDy1xAGAnVs5supTA== "@parcel/watcher@2.0.4": version "2.0.4" @@ -8450,7 +8390,7 @@ lodash.kebabcase@4.1.1: resolved "https://registry.yarnpkg.com/lodash.kebabcase/-/lodash.kebabcase-4.1.1.tgz#8489b1cb0d29ff88195cceca448ff6d6cc295c36" integrity sha512-N8XRTIMMqqDgSy4VLKPnJ/+hpGZN+PHQiJnSenYqPaVV/NCqEogTnAdZLQiGKhxX+JCs8waWq2t1XHWKOmlY8g== -lodash.merge@4.6.2, lodash.merge@^4.6.2: +lodash.merge@^4.6.2: version "4.6.2" resolved "https://registry.yarnpkg.com/lodash.merge/-/lodash.merge-4.6.2.tgz#558aa53b43b661e1925a0afdfa36a9a1085fe57a" integrity sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ== From 6bf662c52137a7cf28e9d718f132b9e363154f42 Mon Sep 17 00:00:00 2001 From: Richard Gibson Date: Tue, 4 Feb 2025 13:19:20 -0500 Subject: [PATCH 2/3] refactor(cosmic-swingset): Use creation advice rather than external views for instrument bucket boundaries --- packages/cosmic-swingset/src/chain-main.js | 7 +++- packages/cosmic-swingset/src/kernel-stats.js | 40 +++----------------- packages/cosmic-swingset/src/sim-chain.js | 3 +- packages/solo/src/start.js | 7 +++- 4 files changed, 16 insertions(+), 41 deletions(-) diff --git a/packages/cosmic-swingset/src/chain-main.js b/packages/cosmic-swingset/src/chain-main.js index 458e68f44ce..b60957a73f7 100644 --- a/packages/cosmic-swingset/src/chain-main.js +++ b/packages/cosmic-swingset/src/chain-main.js @@ -22,7 +22,11 @@ import { exportMailbox, } from '@agoric/swingset-vat/src/devices/mailbox/mailbox.js'; -import { makeSlogSender, tryFlushSlogSender } from '@agoric/telemetry'; +import { + getTelemetryProviders, + makeSlogSender, + tryFlushSlogSender, +} from '@agoric/telemetry'; import { makeChainStorageRoot, @@ -44,7 +48,6 @@ import { } from './helpers/bufferedStorage.js'; import stringify from './helpers/json-stable-stringify.js'; import { launch } from './launch-chain.js'; -import { getTelemetryProviders } from './kernel-stats.js'; import { makeProcessValue } from './helpers/process-value.js'; import { spawnSwingStoreExport, diff --git a/packages/cosmic-swingset/src/kernel-stats.js b/packages/cosmic-swingset/src/kernel-stats.js index d1d24df5001..71b45af13d5 100644 --- a/packages/cosmic-swingset/src/kernel-stats.js +++ b/packages/cosmic-swingset/src/kernel-stats.js @@ -1,9 +1,5 @@ // @ts-check -import { - ExplicitBucketHistogramAggregation, - MeterProvider, - View, -} from '@opentelemetry/sdk-metrics'; +import { MeterProvider } from '@opentelemetry/sdk-metrics'; import { Fail } from '@endo/errors'; import { isNat } from '@endo/nat'; @@ -15,8 +11,6 @@ import { KERNEL_STATS_UPDOWN_METRICS, } from '@agoric/swingset-vat/src/kernel/metrics.js'; -import { getTelemetryProviders as getTelemetryProvidersOriginal } from '@agoric/telemetry'; - import v8 from 'node:v8'; import process from 'node:process'; @@ -132,33 +126,8 @@ const recordToKey = record => Object.entries(record).sort(([ka], [kb]) => (ka < kb ? -1 : 1)), ); -/** - * Return an array of Views defining explicit buckets for Histogram instruments - * to which we record measurements. - */ -export function getMetricsProviderViews() { - return Object.entries(HISTOGRAM_METRICS).map( - ([instrumentName, { boundaries }]) => - // TODO: Add `instrumentType: InstrumentType.HISTOGRAM` and `meterName` - // filters (the latter of which should be a parameter of the exported - // function). - new View({ - instrumentName, - aggregation: new ExplicitBucketHistogramAggregation([...boundaries]), - }), - ); -} - export function makeDefaultMeterProvider() { - return new MeterProvider({ views: getMetricsProviderViews() }); -} - -/** @param {Omit[0]>, 'views'>} [powers] */ -export function getTelemetryProviders(powers = {}) { - return getTelemetryProvidersOriginal({ - ...powers, - views: getMetricsProviderViews(), - }); + return new MeterProvider(); } /** @@ -166,8 +135,9 @@ export function getTelemetryProviders(powers = {}) { * @param {string} name */ function createHistogram(metricMeter, name) { - const { description } = HISTOGRAM_METRICS[name] || {}; - return metricMeter.createHistogram(name, { description }); + const { description, boundaries } = HISTOGRAM_METRICS[name] || {}; + const advice = boundaries && { explicitBucketBoundaries: boundaries }; + return metricMeter.createHistogram(name, { description, advice }); } /** diff --git a/packages/cosmic-swingset/src/sim-chain.js b/packages/cosmic-swingset/src/sim-chain.js index 2ffecc93914..86452cf6e62 100644 --- a/packages/cosmic-swingset/src/sim-chain.js +++ b/packages/cosmic-swingset/src/sim-chain.js @@ -9,14 +9,13 @@ import { import anylogger from 'anylogger'; -import { makeSlogSender } from '@agoric/telemetry'; +import { getTelemetryProviders, makeSlogSender } from '@agoric/telemetry'; import { resolve as importMetaResolve } from 'import-meta-resolve'; import { makeWithQueue } from '@agoric/internal/src/queue.js'; import { makeBatchedDeliver } from '@agoric/internal/src/batched-deliver.js'; import stringify from './helpers/json-stable-stringify.js'; import { launch } from './launch-chain.js'; -import { getTelemetryProviders } from './kernel-stats.js'; import { DEFAULT_SIM_SWINGSET_PARAMS, QueueInbound } from './sim-params.js'; import { parseQueueSizes } from './params.js'; import { makeKVStoreFromMap } from './helpers/bufferedStorage.js'; diff --git a/packages/solo/src/start.js b/packages/solo/src/start.js index 4df27db7c8d..1c8256d1b5f 100644 --- a/packages/solo/src/start.js +++ b/packages/solo/src/start.js @@ -17,7 +17,11 @@ import anylogger from 'anylogger'; // import djson from 'deterministic-json'; import { assert, Fail } from '@endo/errors'; -import { makeSlogSender, tryFlushSlogSender } from '@agoric/telemetry'; +import { + getTelemetryProviders, + makeSlogSender, + tryFlushSlogSender, +} from '@agoric/telemetry'; import { loadSwingsetConfigFile, buildCommand, @@ -36,7 +40,6 @@ import { makeWithQueue } from '@agoric/internal/src/queue.js'; import { makeShutdown } from '@agoric/internal/src/node/shutdown.js'; import { makeDefaultMeterProvider, - getTelemetryProviders, makeSlogCallbacks, exportKernelStats, } from '@agoric/cosmic-swingset/src/kernel-stats.js'; From 2bea8778eb6964b20f28b439eb86cfae4364f1be Mon Sep 17 00:00:00 2001 From: Richard Gibson Date: Tue, 4 Feb 2025 13:19:20 -0500 Subject: [PATCH 3/3] chore(telemetry): Restore indication of OTel trace export target URL --- packages/telemetry/src/otel-trace.js | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/packages/telemetry/src/otel-trace.js b/packages/telemetry/src/otel-trace.js index cd6961ad037..823fe621781 100644 --- a/packages/telemetry/src/otel-trace.js +++ b/packages/telemetry/src/otel-trace.js @@ -22,16 +22,26 @@ export const SPAN_EXPORT_DELAY_MS = 1_000; export const makeOtelTracingProvider = opts => { const { env = process.env } = opts || {}; + // https://opentelemetry.io/docs/concepts/signals/ + // https://opentelemetry.io/docs/specs/otel/protocol/exporter/#endpoint-urls-for-otlphttp + // https://github.com/open-telemetry/opentelemetry-js/blob/experimental/v0.57.1/experimental/packages/exporter-trace-otlp-http/README.md#configuration-options-as-environment-variables const { OTEL_EXPORTER_OTLP_ENDPOINT, OTEL_EXPORTER_OTLP_TRACES_ENDPOINT } = env; if (!OTEL_EXPORTER_OTLP_ENDPOINT && !OTEL_EXPORTER_OTLP_TRACES_ENDPOINT) { + console.debug( + 'Not enabling OTLP Traces Exporter; enable with OTEL_EXPORTER_OTLP_TRACES_ENDPOINT= or OTEL_EXPORTER_OTLP_ENDPOINT=', + ); return undefined; } const resource = new Resource(getResourceAttributes(opts)); const exporter = new OTLPTraceExporter(); - console.info('Enabling OTLP Traces Exporter'); + console.info( + 'Enabling OTLP Traces Exporter to', + OTEL_EXPORTER_OTLP_TRACES_ENDPOINT || + `${OTEL_EXPORTER_OTLP_ENDPOINT}/v1/traces`, + ); const provider = new BasicTracerProvider({ resource }); provider.addSpanProcessor(