@logtape/otel 1.3.0-dev.381 → 1.3.0-dev.383

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/README.md CHANGED
@@ -84,25 +84,26 @@ Or you can even pass an existing OpenTelemetry [`LoggerProvider`] instance:
84
84
  ~~~~ typescript
85
85
  import { configure } from "@logtape/logtape";
86
86
  import { getOpenTelemetrySink } from "@logtape/otel";
87
- import { OTLPLogExporter } from '@opentelemetry/exporter-logs-otlp-http';
87
+ import { OTLPLogExporter } from "@opentelemetry/exporter-logs-otlp-http";
88
88
  import {
89
89
  LoggerProvider,
90
90
  SimpleLogRecordProcessor,
91
- } from '@opentelemetry/sdk-logs';
91
+ } from "@opentelemetry/sdk-logs";
92
92
 
93
93
  const exporter = new OTLPLogExporter({
94
- url: "https://my-otel-collector:4317",
94
+ url: "https://my-otel-collector:4318/v1/logs",
95
95
  headers: { "x-api-key": "my-api-key" },
96
96
  });
97
- const loggerProvider = new LoggerProvider();
98
- loggerProvider.addProcessor(new SimpleLogRecordProcessor(exporter));
97
+ const loggerProvider = new LoggerProvider({
98
+ processors: [new SimpleLogRecordProcessor(exporter)],
99
+ });
99
100
 
100
101
  await configure({
101
102
  sinks: {
102
103
  otel: getOpenTelemetrySink({ loggerProvider }),
103
104
  },
104
105
  loggers: [
105
- { category: [], sinks: ["otel"], level: "debug" },
106
+ { category: [], sinks: ["otel"], lowestLevel: "debug" },
106
107
  ],
107
108
  });
108
109
  ~~~~
@@ -115,6 +116,56 @@ function and [`OpenTelemetrySinkOptions`] type.
115
116
  [`LoggerProvider`]: https://open-telemetry.github.io/opentelemetry-js/classes/_opentelemetry_sdk_logs.LoggerProvider.html
116
117
 
117
118
 
119
+ Protocol selection
120
+ ------------------
121
+
122
+ By default, the sink uses the `http/json` protocol to send logs to the
123
+ OpenTelemetry collector. You can change the protocol by setting the
124
+ `OTEL_EXPORTER_OTLP_PROTOCOL` or `OTEL_EXPORTER_OTLP_LOGS_PROTOCOL` environment
125
+ variable:
126
+
127
+ ~~~~ bash
128
+ # Use gRPC protocol (server environments only)
129
+ export OTEL_EXPORTER_OTLP_PROTOCOL=grpc
130
+
131
+ # Use HTTP/Protobuf protocol
132
+ export OTEL_EXPORTER_OTLP_PROTOCOL=http/protobuf
133
+
134
+ # Use HTTP/JSON protocol (default)
135
+ export OTEL_EXPORTER_OTLP_PROTOCOL=http/json
136
+ ~~~~
137
+
138
+ The available protocols are:
139
+
140
+ - `grpc`: Uses gRPC transport. This is only available in server environments
141
+ (Node.js, Deno, Bun) and not in browsers due to gRPC's HTTP/2 requirement.
142
+ - `http/protobuf`: Uses HTTP transport with Protocol Buffers encoding.
143
+ Works in all environments.
144
+ - `http/json`: Uses HTTP transport with JSON encoding. Works in all
145
+ environments. This is the default.
146
+
147
+ > [!NOTE]
148
+ > When using gRPC protocol, make sure to use the correct port (typically 4317
149
+ > for gRPC vs 4318 for HTTP).
150
+
151
+
152
+ No-op fallback
153
+ --------------
154
+
155
+ If no OTLP endpoint is configured (neither via options nor environment
156
+ variables), the sink automatically falls back to a no-op logger that discards
157
+ all log records. This prevents errors when running in environments where
158
+ OpenTelemetry is not set up.
159
+
160
+ The sink checks for endpoints in the following order:
161
+
162
+ 1. `otlpExporterConfig.url` option
163
+ 2. `OTEL_EXPORTER_OTLP_LOGS_ENDPOINT` environment variable
164
+ 3. `OTEL_EXPORTER_OTLP_ENDPOINT` environment variable
165
+
166
+ If none of these are set, the no-op fallback is used.
167
+
168
+
118
169
  Diagnostic logging
119
170
  ------------------
120
171
 
package/deno.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@logtape/otel",
3
- "version": "1.3.0-dev.381+eef5c598",
3
+ "version": "1.3.0-dev.383+6e95a990",
4
4
  "license": "MIT",
5
5
  "exports": {
6
6
  ".": "./src/mod.ts"
package/dist/deno.cjs CHANGED
@@ -1,7 +1,7 @@
1
1
 
2
2
  //#region deno.json
3
3
  var name = "@logtape/otel";
4
- var version = "1.3.0-dev.381+eef5c598";
4
+ var version = "1.3.0-dev.383+6e95a990";
5
5
  var license = "MIT";
6
6
  var exports$1 = { ".": "./src/mod.ts" };
7
7
  var imports = {
package/dist/deno.js CHANGED
@@ -1,6 +1,6 @@
1
1
  //#region deno.json
2
2
  var name = "@logtape/otel";
3
- var version = "1.3.0-dev.381+eef5c598";
3
+ var version = "1.3.0-dev.383+6e95a990";
4
4
  var license = "MIT";
5
5
  var exports = { ".": "./src/mod.ts" };
6
6
  var imports = {
package/dist/deno.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"deno.js","names":[],"sources":["../deno.json"],"sourcesContent":["{\n \"name\": \"@logtape/otel\",\n \"version\": \"1.3.0-dev.381+eef5c598\",\n \"license\": \"MIT\",\n \"exports\": {\n \".\": \"./src/mod.ts\"\n },\n \"imports\": {\n \"@opentelemetry/api\": \"npm:@opentelemetry/api@^1.9.0\",\n \"@opentelemetry/api-logs\": \"npm:@opentelemetry/api-logs@^0.208.0\",\n \"@opentelemetry/exporter-logs-otlp-grpc\": \"npm:@opentelemetry/exporter-logs-otlp-grpc@^0.208.0\",\n \"@opentelemetry/exporter-logs-otlp-http\": \"npm:@opentelemetry/exporter-logs-otlp-http@^0.208.0\",\n \"@opentelemetry/exporter-logs-otlp-proto\": \"npm:@opentelemetry/exporter-logs-otlp-proto@^0.208.0\",\n \"@opentelemetry/otlp-exporter-base\": \"npm:@opentelemetry/otlp-exporter-base@^0.208.0\",\n \"@opentelemetry/resources\": \"npm:@opentelemetry/resources@^2.2.0\",\n \"@opentelemetry/sdk-logs\": \"npm:@opentelemetry/sdk-logs@^0.208.0\",\n \"@opentelemetry/semantic-conventions\": \"npm:@opentelemetry/semantic-conventions@^1.38.0\"\n },\n \"tasks\": {\n \"build\": \"pnpm build\",\n \"test\": \"deno test --allow-net --allow-env\"\n }\n}\n"],"mappings":";WACU;cACG;cACA;cACA,EACT,KAAK,eACN;cACU;CACT,sBAAsB;CACtB,2BAA2B;CAC3B,0CAA0C;CAC1C,0CAA0C;CAC1C,2CAA2C;CAC3C,qCAAqC;CACrC,4BAA4B;CAC5B,2BAA2B;CAC3B,uCAAuC;AACxC;YACQ;CACP,SAAS;CACT,QAAQ;AACT;mBArBH;;;;;;;AAsBC"}
1
+ {"version":3,"file":"deno.js","names":[],"sources":["../deno.json"],"sourcesContent":["{\n \"name\": \"@logtape/otel\",\n \"version\": \"1.3.0-dev.383+6e95a990\",\n \"license\": \"MIT\",\n \"exports\": {\n \".\": \"./src/mod.ts\"\n },\n \"imports\": {\n \"@opentelemetry/api\": \"npm:@opentelemetry/api@^1.9.0\",\n \"@opentelemetry/api-logs\": \"npm:@opentelemetry/api-logs@^0.208.0\",\n \"@opentelemetry/exporter-logs-otlp-grpc\": \"npm:@opentelemetry/exporter-logs-otlp-grpc@^0.208.0\",\n \"@opentelemetry/exporter-logs-otlp-http\": \"npm:@opentelemetry/exporter-logs-otlp-http@^0.208.0\",\n \"@opentelemetry/exporter-logs-otlp-proto\": \"npm:@opentelemetry/exporter-logs-otlp-proto@^0.208.0\",\n \"@opentelemetry/otlp-exporter-base\": \"npm:@opentelemetry/otlp-exporter-base@^0.208.0\",\n \"@opentelemetry/resources\": \"npm:@opentelemetry/resources@^2.2.0\",\n \"@opentelemetry/sdk-logs\": \"npm:@opentelemetry/sdk-logs@^0.208.0\",\n \"@opentelemetry/semantic-conventions\": \"npm:@opentelemetry/semantic-conventions@^1.38.0\"\n },\n \"tasks\": {\n \"build\": \"pnpm build\",\n \"test\": \"deno test --allow-net --allow-env\"\n }\n}\n"],"mappings":";WACU;cACG;cACA;cACA,EACT,KAAK,eACN;cACU;CACT,sBAAsB;CACtB,2BAA2B;CAC3B,0CAA0C;CAC1C,0CAA0C;CAC1C,2CAA2C;CAC3C,qCAAqC;CACrC,4BAA4B;CAC5B,2BAA2B;CAC3B,uCAAuC;AACxC;YACQ;CACP,SAAS;CACT,QAAQ;AACT;mBArBH;;;;;;;AAsBC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@logtape/otel",
3
- "version": "1.3.0-dev.381+eef5c598",
3
+ "version": "1.3.0-dev.383+6e95a990",
4
4
  "description": "LogTape OpenTelemetry sink",
5
5
  "keywords": [
6
6
  "LogTape",
@@ -42,7 +42,7 @@
42
42
  },
43
43
  "sideEffects": false,
44
44
  "peerDependencies": {
45
- "@logtape/logtape": "^1.3.0-dev.381+eef5c598"
45
+ "@logtape/logtape": "^1.3.0-dev.383+6e95a990"
46
46
  },
47
47
  "dependencies": {
48
48
  "@opentelemetry/api": "^1.9.0",