{"_id":"@autter/otlp-ingester","_rev":"9-39afb7abdf9e20f57fe6b1123ccfa6be","name":"@autter/otlp-ingester","dist-tags":{"latest":"1.3.3"},"versions":{"0.1.0":{"name":"@autter/otlp-ingester","version":"0.1.0","keywords":["opentelemetry","otlp","clickhouse","telemetry","ingest","error-tracking"],"license":"MIT","_id":"@autter/otlp-ingester@0.1.0","maintainers":[{"name":"autter-dev","email":"contact@autter.dev"}],"homepage":"https://github.com/Autter-dev/autter-runtime#readme","bugs":{"url":"https://github.com/Autter-dev/autter-runtime/issues"},"dist":{"shasum":"729bde67e8f1c06132237a1c817ce17694fbdb47","tarball":"https://registry.npmjs.org/@autter/otlp-ingester/-/otlp-ingester-0.1.0.tgz","fileCount":25,"integrity":"sha512-3FgG/+Lk5vswZS4mVyskJDWUzwPJ+HJteKPwA/9o1PPEmYL2YFBD3lMksrHQzwGZRAQR0BdvLHwPa4ToBPphRA==","signatures":[{"sig":"MEUCIQCy0JPfjXrelw+ihwmHc3wcrdhn6ZtByMHgy/psb2sQugIgPRGzM/oj2wQIEdJtrt6+o6w/orD/bgjrLvPSGKRr5Z4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@autter%2fotlp-ingester@0.1.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":78286},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","engines":{"node":">=20"},"gitHead":"658e4bd478085e5ac849f4ff36c3d8e92cd15ce9","scripts":{"dev":"tsx watch src/index.ts","build":"tsc -p tsconfig.json","start":"node dist/index.js"},"_npmUser":{"name":"autter-dev","email":"contact@autter.dev"},"repository":{"url":"git+https://github.com/Autter-dev/autter-runtime.git","type":"git","directory":"packages/otlp-ingester"},"_npmVersion":"10.9.8","description":"Self-hostable OTLP + browser-error ingest service for Autter Runtime: normalises telemetry into a per-repo ClickHouse data model","directories":{},"_nodeVersion":"22.23.1","dependencies":{"zod":"^3.24.1","express":"^4.21.2","protobufjs":"^7.6.5","@clickhouse/client":"^1.12.0"},"publishConfig":{"access":"public","provenance":true},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.0","typescript":"^5.7.0","@types/node":"^22.10.0","@types/express":"^4.17.21","@opentelemetry/exporter-trace-otlp-proto":"^0.57.1"},"_npmOperationalInternal":{"tmp":"tmp/otlp-ingester_0.1.0_1784694566205_0.943007203039153","host":"s3://npm-registry-packages-npm-production"}},"1.0.0":{"name":"@autter/otlp-ingester","version":"1.0.0","keywords":["opentelemetry","otlp","clickhouse","telemetry","ingest","error-tracking"],"license":"MIT","_id":"@autter/otlp-ingester@1.0.0","maintainers":[{"name":"autter-dev","email":"contact@autter.dev"}],"homepage":"https://github.com/Autter-dev/autter-runtime#readme","bugs":{"url":"https://github.com/Autter-dev/autter-runtime/issues"},"dist":{"shasum":"4f9055e37de88e823fff2eba8e7666e1c010f2ce","tarball":"https://registry.npmjs.org/@autter/otlp-ingester/-/otlp-ingester-1.0.0.tgz","fileCount":25,"integrity":"sha512-fzaIrmEJX82bHg8auOEpL4ArIeGl9UGwdGqPBO8yJdQFXILY5s+vl/0LehMIU2Gt/IPWQiawTDv9FHxx873ApA==","signatures":[{"sig":"MEUCIQDEoTZqYkvOLEOo/igCBPHBBMMOen57grPs9GoJFugVzgIgR3gkPj3JAlBm+PiZPmhvnkUMix0XlnqmCVJPH4SN0G4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@autter%2fotlp-ingester@1.0.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":78286},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","engines":{"node":">=20"},"gitHead":"e52edf4a0de6d28370f1e7faf931200d35e84799","scripts":{"dev":"tsx watch src/index.ts","build":"tsc -p tsconfig.json","start":"node dist/index.js"},"_npmUser":{"name":"autter-dev","email":"contact@autter.dev"},"repository":{"url":"git+https://github.com/Autter-dev/autter-runtime.git","type":"git","directory":"packages/otlp-ingester"},"_npmVersion":"10.9.8","description":"Self-hostable OTLP + browser-error ingest service for Autter Runtime: normalises telemetry into a per-repo ClickHouse data model","directories":{},"_nodeVersion":"22.23.1","dependencies":{"zod":"^3.24.1","express":"^4.21.2","protobufjs":"^7.6.5","@clickhouse/client":"^1.12.0"},"publishConfig":{"access":"public","provenance":true},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.0","typescript":"^5.7.0","@types/node":"^22.10.0","@types/express":"^4.17.21","@opentelemetry/exporter-trace-otlp-proto":"^0.57.1"},"_npmOperationalInternal":{"tmp":"tmp/otlp-ingester_1.0.0_1784721205626_0.11814280966960666","host":"s3://npm-registry-packages-npm-production"}},"1.1.0":{"name":"@autter/otlp-ingester","version":"1.1.0","keywords":["opentelemetry","otlp","clickhouse","telemetry","ingest","error-tracking"],"license":"MIT","_id":"@autter/otlp-ingester@1.1.0","maintainers":[{"name":"autter-dev","email":"contact@autter.dev"}],"homepage":"https://github.com/Autter-dev/autter-runtime#readme","bugs":{"url":"https://github.com/Autter-dev/autter-runtime/issues"},"dist":{"shasum":"c0dda5631fe8578fe0470d75fe3581ec60950d85","tarball":"https://registry.npmjs.org/@autter/otlp-ingester/-/otlp-ingester-1.1.0.tgz","fileCount":31,"integrity":"sha512-LJLFtspuD3RiGjoYW4+h3DThvyRzdU1lBG5A5+jJ3xRuUAyCccj9mZRlDioniQgoG/lG90ycpHH1z1EjlXpqqA==","signatures":[{"sig":"MEUCIDv8oenn34MmD9mRhFt8/NmWzh1n1JnwPrObMICXjiNHAiEAjAQJZP8KNZAZ5mPSdse9dXMIFLjstnMTQN+hJ8iXUyw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@autter%2fotlp-ingester@1.1.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":125960},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","engines":{"node":">=20"},"gitHead":"13d77f2adf6c843c57703a8409dad77e9912c905","scripts":{"dev":"tsx watch src/index.ts","test":"tsx --test src/*.test.ts","build":"tsc -p tsconfig.json","start":"node dist/index.js"},"_npmUser":{"name":"autter-dev","email":"contact@autter.dev"},"repository":{"url":"git+https://github.com/Autter-dev/autter-runtime.git","type":"git","directory":"packages/otlp-ingester"},"_npmVersion":"10.9.8","description":"Self-hostable OTLP + browser-error ingest service for Autter Runtime: normalises telemetry into a per-repo ClickHouse data model","directories":{},"_nodeVersion":"22.23.2","dependencies":{"zod":"^3.24.1","express":"^4.21.2","protobufjs":"^7.6.5","@clickhouse/client":"^1.12.0"},"publishConfig":{"access":"public","provenance":true},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.0","typescript":"^5.7.0","@types/node":"^22.10.0","@types/express":"^4.17.21","@opentelemetry/exporter-trace-otlp-proto":"^0.57.1"},"_npmOperationalInternal":{"tmp":"tmp/otlp-ingester_1.1.0_1788277326926_0.0623893082659539","host":"s3://npm-registry-packages-npm-production"}},"1.2.0":{"name":"@autter/otlp-ingester","version":"1.2.0","keywords":["opentelemetry","otlp","clickhouse","telemetry","ingest","error-tracking"],"license":"MIT","_id":"@autter/otlp-ingester@1.2.0","maintainers":[{"name":"autter-dev","email":"contact@autter.dev"}],"homepage":"https://github.com/Autter-dev/autter-runtime#readme","bugs":{"url":"https://github.com/Autter-dev/autter-runtime/issues"},"dist":{"shasum":"77ded4af37491e2b156ba4a3df76a0a216dd7fb2","tarball":"https://registry.npmjs.org/@autter/otlp-ingester/-/otlp-ingester-1.2.0.tgz","fileCount":33,"integrity":"sha512-8InAl03aLBH1cH9m8q5J5r7u7OyPLm/hHiTPQTx2HPrFrhzTB3QLwNLkvICP44sE3w1VANjivT5T3O8Q0Eg3xw==","signatures":[{"sig":"MEQCIG075IuMenfO/1330O6powY3h4ojaEqK3ZyDhfEwVaGrAiACeM8A//dqbjzCPENJD2yMuiihk/yKEDyItF3Zv8WmsQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@autter%2fotlp-ingester@1.2.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":147122},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","engines":{"node":">=20"},"gitHead":"e21d1dd32dbd8eb78373acf5b84486c9f8d78829","scripts":{"dev":"tsx watch src/index.ts","test":"tsx --test src/*.test.ts","build":"tsc -p tsconfig.json","start":"node dist/index.js"},"_npmUser":{"name":"autter-dev","email":"contact@autter.dev"},"repository":{"url":"git+https://github.com/Autter-dev/autter-runtime.git","type":"git","directory":"packages/otlp-ingester"},"_npmVersion":"10.9.8","description":"Self-hostable OTLP + browser-error ingest service for Autter Runtime: normalises telemetry into a per-repo ClickHouse data model","directories":{},"_nodeVersion":"22.23.2","dependencies":{"zod":"^3.24.1","express":"^4.21.2","protobufjs":"^7.6.5","@clickhouse/client":"^1.12.0"},"publishConfig":{"access":"public","provenance":true},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.0","typescript":"^5.7.0","@types/node":"^22.10.0","@types/express":"^4.17.21","@opentelemetry/exporter-trace-otlp-proto":"^0.57.1"},"_npmOperationalInternal":{"tmp":"tmp/otlp-ingester_1.2.0_1788772277084_0.8338099612420522","host":"s3://npm-registry-packages-npm-production"}},"1.2.1":{"name":"@autter/otlp-ingester","version":"1.2.1","keywords":["opentelemetry","otlp","clickhouse","telemetry","ingest","error-tracking"],"license":"MIT","_id":"@autter/otlp-ingester@1.2.1","maintainers":[{"name":"autter-dev","email":"contact@autter.dev"}],"homepage":"https://github.com/Autter-dev/autter-runtime#readme","bugs":{"url":"https://github.com/Autter-dev/autter-runtime/issues"},"dist":{"shasum":"fb0703fbaa1f8ec0ded5a1bc4be3489ec87f94ca","tarball":"https://registry.npmjs.org/@autter/otlp-ingester/-/otlp-ingester-1.2.1.tgz","fileCount":33,"integrity":"sha512-5MR5y9WwygcG0dQjGABztEJMLou32FkAy1fFG6LDawZDbzJKEAov03mSvmFLOx7R05rFzumApxZv/Ps19liAvg==","signatures":[{"sig":"MEUCIEtdrsP3V8PUgKUjqnFsGQkDvbEc69nr4Fw/X4rDcwpwAiEA2klWkc2oEo/6aSGk1rDDOUxxtCFB1ho6Sck6jIVwBNg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@autter%2fotlp-ingester@1.2.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":147122},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","engines":{"node":">=20"},"gitHead":"aaa5f9381e8b1588159eda7dcf92023712f2e756","scripts":{"dev":"tsx watch src/index.ts","test":"tsx --test src/*.test.ts","build":"tsc -p tsconfig.json","start":"node dist/index.js"},"_npmUser":{"name":"autter-dev","email":"contact@autter.dev"},"repository":{"url":"git+https://github.com/Autter-dev/autter-runtime.git","type":"git","directory":"packages/otlp-ingester"},"_npmVersion":"10.9.8","description":"Self-hostable OTLP + browser-error ingest service for Autter Runtime: normalises telemetry into a per-repo ClickHouse data model","directories":{},"_nodeVersion":"22.23.2","dependencies":{"zod":"^3.24.1","express":"^4.21.2","protobufjs":"^7.6.5","@clickhouse/client":"^1.12.0"},"publishConfig":{"access":"public","provenance":true},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.0","typescript":"^5.7.0","@types/node":"^22.10.0","@types/express":"^4.17.21","@opentelemetry/exporter-trace-otlp-proto":"^0.57.1"},"_npmOperationalInternal":{"tmp":"tmp/otlp-ingester_1.2.1_1788778648136_0.08965401490524827","host":"s3://npm-registry-packages-npm-production"}},"1.3.0":{"name":"@autter/otlp-ingester","version":"1.3.0","keywords":["opentelemetry","otlp","clickhouse","telemetry","ingest","error-tracking"],"license":"MIT","_id":"@autter/otlp-ingester@1.3.0","maintainers":[{"name":"autter-dev","email":"contact@autter.dev"}],"homepage":"https://github.com/Autter-dev/autter-runtime#readme","bugs":{"url":"https://github.com/Autter-dev/autter-runtime/issues"},"dist":{"shasum":"0ffd927b0ed48b2434bf7720992bd9ee42d20b65","tarball":"https://registry.npmjs.org/@autter/otlp-ingester/-/otlp-ingester-1.3.0.tgz","fileCount":35,"integrity":"sha512-i+4/h1gDn0Gc1HcLWMIJWXPmM/92zQB4sWLC84s4VENUP4u3A0n6rF2x8A0tBDYUkix6N2o/Ad5Yv6iHrhoqSg==","signatures":[{"sig":"MEUCIQCs/lH8Z/Oa+8pQj9i+VhXZn5KZfWuzcYR1nZy5Ly2XiAIgUa58cdkO5VNcq+XvfyFhOzfdynhIW6vDKOhSP1+PgkU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@autter%2fotlp-ingester@1.3.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":154166},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","engines":{"node":">=20"},"gitHead":"b7edff977e6185fe79998e1ee1c50acdc7389093","scripts":{"dev":"tsx watch src/index.ts","test":"tsx --test src/*.test.ts","build":"tsc -p tsconfig.json","start":"node dist/index.js"},"_npmUser":{"name":"autter-dev","email":"contact@autter.dev"},"repository":{"url":"git+https://github.com/Autter-dev/autter-runtime.git","type":"git","directory":"packages/otlp-ingester"},"_npmVersion":"10.9.8","description":"Self-hostable OTLP + browser-error ingest service for Autter Runtime: normalises telemetry into a per-repo ClickHouse data model","directories":{},"_nodeVersion":"22.23.2","dependencies":{"zod":"^3.24.1","express":"^4.21.2","protobufjs":"^7.6.5","@clickhouse/client":"^1.12.0"},"publishConfig":{"access":"public","provenance":true},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.0","typescript":"^5.7.0","@types/node":"^22.10.0","@types/express":"^4.17.21","@opentelemetry/exporter-trace-otlp-proto":"^0.57.1"},"_npmOperationalInternal":{"tmp":"tmp/otlp-ingester_1.3.0_1788882452562_0.149672484693242","host":"s3://npm-registry-packages-npm-production"}},"1.3.1":{"name":"@autter/otlp-ingester","version":"1.3.1","keywords":["opentelemetry","otlp","clickhouse","telemetry","ingest","error-tracking"],"license":"MIT","_id":"@autter/otlp-ingester@1.3.1","maintainers":[{"name":"autter-dev","email":"contact@autter.dev"}],"homepage":"https://github.com/Autter-dev/autter-runtime#readme","bugs":{"url":"https://github.com/Autter-dev/autter-runtime/issues"},"dist":{"shasum":"e3ae5694d718a4b7c37bc0896b957caeea722f95","tarball":"https://registry.npmjs.org/@autter/otlp-ingester/-/otlp-ingester-1.3.1.tgz","fileCount":35,"integrity":"sha512-JUblql0XxY59kxHC3IO0JlQ+Ey+M+GCQiCaDxOmK/yRQAGYZ8Y1u1poD/UCHBI2kAv01xe4/xG+QPr1wFprUdA==","signatures":[{"sig":"MEUCIQDTXHINF2lMViJ+pfM6Y9WCEn9bFG6Fa6RzZo164Gl+cwIgEDhwJky2xQWtVGXW+dMzxTYmJkI/h4rR6qdDcD6ktRw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@autter%2fotlp-ingester@1.3.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":154166},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","engines":{"node":">=20"},"gitHead":"016c49077e8ed2863798e8ca8cbf26d8eb14e641","scripts":{"dev":"tsx watch src/index.ts","test":"tsx --test src/*.test.ts","build":"tsc -p tsconfig.json","start":"node dist/index.js"},"_npmUser":{"name":"autter-dev","email":"contact@autter.dev"},"repository":{"url":"git+https://github.com/Autter-dev/autter-runtime.git","type":"git","directory":"packages/otlp-ingester"},"_npmVersion":"10.9.8","description":"Self-hostable OTLP + browser-error ingest service for Autter Runtime: normalises telemetry into a per-repo ClickHouse data model","directories":{},"_nodeVersion":"22.23.2","dependencies":{"zod":"^3.24.1","express":"^4.21.2","protobufjs":"^7.6.5","@clickhouse/client":"^1.12.0"},"publishConfig":{"access":"public","provenance":true},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.0","typescript":"^5.7.0","@types/node":"^22.10.0","@types/express":"^4.17.21","@opentelemetry/exporter-trace-otlp-proto":"^0.57.1"},"_npmOperationalInternal":{"tmp":"tmp/otlp-ingester_1.3.1_1788888011625_0.7154976269733571","host":"s3://npm-registry-packages-npm-production"}},"1.3.2":{"name":"@autter/otlp-ingester","version":"1.3.2","keywords":["opentelemetry","otlp","clickhouse","telemetry","ingest","error-tracking"],"license":"MIT","_id":"@autter/otlp-ingester@1.3.2","maintainers":[{"name":"autter-dev","email":"contact@autter.dev"}],"homepage":"https://github.com/Autter-dev/autter-runtime#readme","bugs":{"url":"https://github.com/Autter-dev/autter-runtime/issues"},"dist":{"shasum":"a17453c549bb039993b03e93f63fe0486c3d4557","tarball":"https://registry.npmjs.org/@autter/otlp-ingester/-/otlp-ingester-1.3.2.tgz","fileCount":39,"integrity":"sha512-fwKP0FiNx/T8Tcn65SRovvAK0QiGCBJbzo8ZCU836uiDThJPeGvR050Fc7F8w2lIOgEjYa8bmfpzlRWb+O8qTw==","signatures":[{"sig":"MEUCIDSRQLRF+bT65wP9eUiFqxDwZSYZ8sosd1Yzlb8FX8VTAiEAy6tpOKNM2ULz45kgawJidvFH/ItX2l0EuVaGAqdPOx4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCID/K1HAoJW59g/lRTVIDSBpO6i6vkGaIj2cn4GAtsUupAiAQFMhyC9ncZyzAflsH3O+MUfbJ8vL0N59GgD+WwnC7gg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@autter%2fotlp-ingester@1.3.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":167778},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","engines":{"node":">=20"},"gitHead":"82caef283b13413d9fb535365a728336bccaf9b3","scripts":{"dev":"tsx watch src/index.ts","test":"tsx --test src/*.test.ts","build":"tsc -p tsconfig.json","start":"node dist/index.js"},"_npmUser":{"name":"autter-dev","email":"contact@autter.dev"},"repository":{"url":"git+https://github.com/Autter-dev/autter-runtime.git","type":"git","directory":"packages/otlp-ingester"},"_npmVersion":"10.9.8","description":"Self-hostable OTLP + browser-error ingest service for Autter Runtime: normalises telemetry into a per-repo ClickHouse data model","directories":{},"_nodeVersion":"22.23.2","dependencies":{"zod":"^3.24.1","express":"^4.21.2","protobufjs":"^7.6.5","@clickhouse/client":"^1.12.0"},"publishConfig":{"access":"public","provenance":true},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.0","typescript":"^5.7.0","@types/node":"^22.10.0","@types/express":"^4.17.21","@opentelemetry/exporter-trace-otlp-proto":"^0.57.1"},"_npmOperationalInternal":{"tmp":"tmp/otlp-ingester_1.3.2_1790245681351_0.8754184390649147","host":"s3://npm-registry-packages-npm-production"}},"1.3.3":{"_id":"@autter/otlp-ingester@1.3.3","bugs":{"url":"https://github.com/Autter-dev/autter-runtime/issues"},"dist":{"shasum":"b9f1c488009ab4fa5b29ff5420002343940c3358","tarball":"https://registry.npmjs.org/@autter/otlp-ingester/-/otlp-ingester-1.3.3.tgz","fileCount":41,"integrity":"sha512-ueo+wjSacUdsGEJIDBUEaFxvUTVXZE4PLe3taidNZADYeHBY2nY/ekgD+yG+P9DNas333+mQlFVQzAFT6yHclg==","signatures":[{"sig":"MEUCIC/sBv0H4RgMIBR/umyltQd6mViifVzz9W9F/fP9WCx7AiEA+eOtxJzuv0vcU8Y8UV6FynhT2kd8wpAXe8OhVRsg9yM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIA7PWpQhXwSiauS8y/FVGmkIXDFWWhHJ12gZbQ0xzjm0AiEAgfcwSnVZAPUw7T33K1vFiOu2PTJgFr03sW4ECJ6eRoE="}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@autter%2fotlp-ingester@1.3.3","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":180180},"main":"dist/index.js","name":"@autter/otlp-ingester","type":"module","types":"dist/index.d.ts","engines":{"node":">=20"},"gitHead":"99643998aa892451deb125d31e90f927c4ac06c7","license":"MIT","scripts":{"dev":"tsx watch src/index.ts","test":"tsx --test src/*.test.ts","build":"tsc -p tsconfig.json","start":"node dist/index.js"},"version":"1.3.3","_npmUser":{"name":"autter-dev","email":"contact@autter.dev"},"homepage":"https://github.com/Autter-dev/autter-runtime#readme","keywords":["opentelemetry","otlp","clickhouse","telemetry","ingest","error-tracking"],"repository":{"url":"git+https://github.com/Autter-dev/autter-runtime.git","type":"git","directory":"packages/otlp-ingester"},"_npmVersion":"10.9.8","description":"Self-hostable OTLP + browser-error ingest service for Autter Runtime: normalises telemetry into a per-repo ClickHouse data model","directories":{},"maintainers":[{"name":"autter-dev","email":"contact@autter.dev"}],"_nodeVersion":"22.23.2","dependencies":{"zod":"^3.24.1","express":"^4.21.2","protobufjs":"^7.6.5","@clickhouse/client":"^1.12.0"},"publishConfig":{"access":"public","provenance":true},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.0","typescript":"^5.7.0","@types/node":"^22.10.0","@types/express":"^4.17.21","@opentelemetry/exporter-trace-otlp-proto":"^0.57.1"},"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/otlp-ingester_1.3.3_1790260553099_0.951786690118307"}}},"time":{"created":"2026-07-22T04:29:26.085Z","modified":"2026-09-24T14:35:53.565Z","0.1.0":"2026-07-22T04:29:26.342Z","1.0.0":"2026-07-22T11:53:25.764Z","1.1.0":"2026-09-01T15:42:07.073Z","1.2.0":"2026-09-07T09:11:17.211Z","1.2.1":"2026-09-07T10:57:28.300Z","1.3.0":"2026-09-08T15:47:32.697Z","1.3.1":"2026-09-08T17:20:11.774Z","1.3.2":"2026-09-24T10:28:01.431Z","1.3.3":"2026-09-24T14:35:53.170Z"},"bugs":{"url":"https://github.com/Autter-dev/autter-runtime/issues"},"license":"MIT","homepage":"https://github.com/Autter-dev/autter-runtime#readme","keywords":["opentelemetry","otlp","clickhouse","telemetry","ingest","error-tracking"],"repository":{"url":"git+https://github.com/Autter-dev/autter-runtime.git","type":"git","directory":"packages/otlp-ingester"},"description":"Self-hostable OTLP + browser-error ingest service for Autter Runtime: normalises telemetry into a per-repo ClickHouse data model","maintainers":[{"name":"autter-dev","email":"contact@autter.dev"}],"readme":"# @autter/otlp-ingester\n\nSelf-hostable ingest service for Autter Runtime. Receives OTLP/HTTP (protobuf or JSON)\ntraces and metrics plus compact browser error payloads, normalises them into\none per-repo signal model, fingerprints errors, and writes ClickHouse.\n\n## Endpoints\n\n| Route | Payload | Purpose |\n| --- | --- | --- |\n| `POST /v1/traces` | OTLP/JSON `ExportTraceServiceRequest` | Error spans → occurrences; all spans → `runtime_spans`; server spans → usage rollups; GenAI spans → `runtime_llm_calls` |\n| `POST /v1/metrics` | OTLP `ExportMetricsServiceRequest` | HTTP-server duration histograms → usage rollups; portable process memory/GC metrics → per-instance memory samples |\n| `POST /v1/platform-events` | JSON, server key | ECS/Kubernetes OOM kills and restarts → memory incident correlation |\n| `POST /v1/profiles` | Symbolized pprof, server key | CPU/in-use heap profile samples |\n| `POST /v1/browser` | Browser payload `version: 1` | Errors/rejections → occurrences; session pings → rollups |\n| `GET /healthz` | — | Liveness + ClickHouse reachability |\n\nAuth on every ingest route: `Authorization: Bearer <ingest key>`,\n`x-autter-key`, or `?key=` (query param — for sendBeacon, which cannot set\nheaders). OTLP endpoints accept **both protobuf and JSON** (`content-type:\napplication/x-protobuf` or `application/json`), gzip/deflate bodies\nincluded — so any OpenTelemetry SDK (Go, Rust, Python, Java, .NET, JS)\nworks with its default exporter settings.\n\n### Key scopes\n\n| Scope | Prefix convention | Valid on | Extras |\n| --- | --- | --- | --- |\n| `server` (default) | `autter_rt_…` (secret) | all endpoints | 300 req/min |\n| `client` | `autter_rtc_…` (publishable, safe in frontend bundles) | `/v1/browser` only | origin allow-list, 120 req/min |\n\n`/v1/browser` answers CORS preflights permissively; real enforcement (key +\norigin allow-list) happens on the POST. Cross-origin browsers send\n`text/plain` bodies (CORS-safelisted, no preflight per beacon) which the\nroute parses as JSON.\n\n```json\nAUTTER_INGEST_KEYS='[\n  {\"key\":\"autter_rt_…\",\"orgId\":\"org1\",\"repositoryId\":\"repo1\"},\n  {\"key\":\"autter_rtc_…\",\"orgId\":\"org1\",\"repositoryId\":\"repo1\",\n   \"scope\":\"client\",\"allowedOrigins\":[\"https://app.example.com\"]}\n]'\n```\n\nThe validator webhook may return the same extra fields:\n`{ orgId, repositoryId, scope?, allowedOrigins? }`.\n\n## Configuration\n\n| Env | Default | Description |\n| --- | --- | --- |\n| `PORT` | `4318` | Listen port (OTLP/HTTP convention) |\n| `CLICKHOUSE_URL` | — | e.g. `http://localhost:8123`; unset = ingest returns 503 |\n| `CLICKHOUSE_USER` / `CLICKHOUSE_PASSWORD` | `default` / empty | |\n| `CLICKHOUSE_DATABASE` | `autter_runtime` | Created automatically |\n| `AUTTER_INGEST_KEYS` | — | JSON: `[{\"key\":\"...\",\"orgId\":\"...\",\"repositoryId\":\"...\"}]` |\n| `AUTTER_KEY_VALIDATOR_URL` | — | Webhook: `POST {key}` → `{orgId, repositoryId}` (60 s cache) |\n| `AUTTER_KEY_VALIDATOR_TOKEN` | — | Bearer token sent to the validator |\n| `AUTTER_SINK_URL` | — | Issue-grouping webhook; at-least-once (`docs/ARCHITECTURE.md`) |\n| `AUTTER_SINK_TOKEN` | — | Bearer token sent to the sink |\n| `SINK_MAX_ATTEMPTS` | `12` | Delivery attempts per batch (1–60 s backoff) |\n| `SINK_MAX_BUFFERED_BATCHES` | `1000` | Retry buffer cap; oldest drops are logged |\n| `SINK_MAX_BUFFERED_MB` | `64` | Sink retry buffer cap (memory) |\n| `MAX_BODY_BYTES` | `1048576` | Request body cap |\n| `RATE_LIMIT_PER_MINUTE` | `300` | Per-key fixed window (server keys) |\n| `CLIENT_RATE_LIMIT_PER_MINUTE` | `120` | Per-key fixed window (client keys) |\n| `OCCURRENCE_TTL_DAYS` / `SPAN_TTL_DAYS` / `METRICS_TTL_DAYS` | `14` / `7` / `90` | ClickHouse TTLs (applied at table creation) |\n| `LLM_CALL_TTL_DAYS` | `90` | Retention for `runtime_llm_calls` rows |\n\n## LLM / GenAI calls\n\nSpans following the [OTel GenAI semconv](https://opentelemetry.io/docs/specs/semconv/gen-ai/)\n(`gen_ai.*` attributes — emitted by `withLlmCall` in `@autter/runtime-node`,\nthe Vercel AI SDK with telemetry enabled, and the GenAI instrumentations for\nPython/Go/etc.) are recognised automatically on `/v1/traces` and additionally\nstored per call in `runtime_llm_calls`: provider, model, operation, input/\noutput tokens, duration, ok/error status (with the provider exception type\nin `error_type` for failed calls), and a USD cost. The cost is taken\nfrom the `autter.llm.cost_usd` span attribute when reported; otherwise it's\nestimated from the built-in price table in `src/llm-pricing.ts`\n(`cost_source` records which: `reported` / `estimated` / `unpriced`). An\nopaque calling-user id is read from `autter.user_id` (or the AI SDK's\n`metadata.userId`). The Vercel AI SDK's outer `ai.generateText`/`ai.streamText`\nspans are not counted — their inner `.doGenerate`/`.doEmbed` call spans carry\nthe usage, and counting both would double the tokens.\n\n## Schema migrations\n\nThe ingester owns the ClickHouse schema and updates it **automatically on\nboot** — deploying a new ingester version is the schema deployment; there\nis no separate migration step to run.\n\nHow it works: the baseline `CREATE TABLE IF NOT EXISTS` statements\nprovision fresh databases; versioned migrations in `src/migrations.ts`\nalter existing ones. Applied migration ids are recorded in\n`<db>.schema_migrations`, so each runs exactly once per database, and every\nstatement is written to be idempotent (`ADD COLUMN IF NOT EXISTS`, …) so\nconcurrent replicas booting during a rolling deploy race harmlessly.\n\nTo change the schema (e.g. add a column):\n\n1. Append a migration to `MIGRATIONS` in `src/migrations.ts` — new columns\n   need a `DEFAULT` so still-running old replicas can keep inserting.\n2. Update the baseline in `src/clickhouse.ts` `schemaStatements()` so fresh\n   databases come up with the final shape.\n3. Ship it — the next deploy applies it everywhere; the log line\n   `clickhouse migration applied: <id>` confirms.\n\nNever edit or reorder a shipped migration; append a corrective one.\n\n## Local development\n\n```bash\ndocker compose up clickhouse   # from the repo root\nAUTTER_INGEST_KEYS='[{\"key\":\"dev-key\",\"orgId\":\"org1\",\"repositoryId\":\"repo1\"}]' \\\nCLICKHOUSE_URL=http://localhost:8123 CLICKHOUSE_PASSWORD=dev \\\nnpm run dev\n```\n\nSend a test error span:\n\n```bash\ncurl -s http://localhost:4318/v1/traces \\\n  -H 'authorization: Bearer dev-key' -H 'content-type: application/json' \\\n  -d '{\"resourceSpans\":[{\"resource\":{\"attributes\":[{\"key\":\"service.name\",\"value\":{\"stringValue\":\"payments-api\"}},{\"key\":\"service.version\",\"value\":{\"stringValue\":\"e4a218f\"}}]},\"scopeSpans\":[{\"spans\":[{\"traceId\":\"0123456789abcdef0123456789abcdef\",\"spanId\":\"0123456789abcdef\",\"name\":\"POST /orders/:id\",\"kind\":2,\"startTimeUnixNano\":\"1753100000000000000\",\"endTimeUnixNano\":\"1753100000120000000\",\"status\":{\"code\":2,\"message\":\"boom\"},\"attributes\":[{\"key\":\"http.route\",\"value\":{\"stringValue\":\"/orders/:id\"}},{\"key\":\"http.response.status_code\",\"value\":{\"intValue\":500}}],\"events\":[{\"name\":\"exception\",\"timeUnixNano\":\"1753100000100000000\",\"attributes\":[{\"key\":\"exception.type\",\"value\":{\"stringValue\":\"TypeError\"}},{\"key\":\"exception.message\",\"value\":{\"stringValue\":\"cannot read x\"}},{\"key\":\"exception.stacktrace\",\"value\":{\"stringValue\":\"TypeError: cannot read x\\n    at handler (/app/dist/orders.js:12:3)\"}}]}]}]}]}]}'\n```\n\n## Pointing OpenTelemetry at it\n\n```ts\nimport { OTLPTraceExporter } from \"@opentelemetry/exporter-trace-otlp-http\"; // http/json\n\nnew OTLPTraceExporter({\n  url: \"https://otlp.your-domain.dev/v1/traces\",\n  headers: { authorization: \"Bearer <ingest key>\" },\n});\n```\n","readmeFilename":"README.md"}