@intentius/chant-lexicon-otel 0.100.0 → 0.101.0
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 +8 -6
- package/dist/codegen/docs.d.ts.map +1 -1
- package/dist/components/common.d.ts +2 -0
- package/dist/components/common.d.ts.map +1 -1
- package/dist/components/connectors.d.ts +109 -1
- package/dist/components/connectors.d.ts.map +1 -1
- package/dist/components/exporters.d.ts.map +1 -1
- package/dist/components/extensions.d.ts +26 -2
- package/dist/components/extensions.d.ts.map +1 -1
- package/dist/components/processors.d.ts +15 -2
- package/dist/components/processors.d.ts.map +1 -1
- package/dist/components/receivers.d.ts.map +1 -1
- package/dist/composites/catalog.d.ts +3 -0
- package/dist/composites/catalog.d.ts.map +1 -0
- package/dist/composites/index.d.ts +6 -0
- package/dist/composites/index.d.ts.map +1 -0
- package/dist/composites/node-agent.d.ts +110 -0
- package/dist/composites/node-agent.d.ts.map +1 -0
- package/dist/configmap.d.ts +35 -0
- package/dist/configmap.d.ts.map +1 -0
- package/dist/define.d.ts +9 -0
- package/dist/define.d.ts.map +1 -1
- package/dist/genai.d.ts +145 -2
- package/dist/genai.d.ts.map +1 -1
- package/dist/index.d.ts +3 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/init-templates.d.ts +24 -0
- package/dist/init-templates.d.ts.map +1 -0
- package/dist/integrity.json +10 -5
- package/dist/lint/audit-catalog.d.ts +1 -1
- package/dist/lint/audit-catalog.d.ts.map +1 -1
- package/dist/lint/post-synth/index.d.ts.map +1 -1
- package/dist/lint/post-synth/otel-helpers.d.ts +32 -9
- package/dist/lint/post-synth/otel-helpers.d.ts.map +1 -1
- package/dist/lint/post-synth/otel113.d.ts +8 -0
- package/dist/lint/post-synth/otel113.d.ts.map +1 -0
- package/dist/lint/post-synth/otel114.d.ts +8 -0
- package/dist/lint/post-synth/otel114.d.ts.map +1 -0
- package/dist/lint/post-synth/otel115.d.ts +8 -0
- package/dist/lint/post-synth/otel115.d.ts.map +1 -0
- package/dist/lint/post-synth/otel116.d.ts +8 -0
- package/dist/lint/post-synth/otel116.d.ts.map +1 -0
- package/dist/lint/post-synth/otel117.d.ts +8 -0
- package/dist/lint/post-synth/otel117.d.ts.map +1 -0
- package/dist/manifest.json +1 -1
- package/dist/meta.json +15 -0
- package/dist/okf/index.md +8 -0
- package/dist/okf/rules/OTEL113.md +11 -0
- package/dist/okf/rules/OTEL114.md +11 -0
- package/dist/okf/rules/OTEL115.md +11 -0
- package/dist/okf/rules/OTEL116.md +11 -0
- package/dist/okf/rules/OTEL117.md +11 -0
- package/dist/okf/types/DeltaToCumulativeProcessor.md +9 -0
- package/dist/okf/types/K8sLeaderElectorExtension.md +9 -0
- package/dist/okf/types/SignalToMetricsConnector.md +9 -0
- package/dist/plugin.d.ts.map +1 -1
- package/dist/rules/otel-helpers.ts +43 -11
- package/dist/rules/otel113.ts +17 -0
- package/dist/rules/otel114.ts +17 -0
- package/dist/rules/otel115.ts +17 -0
- package/dist/rules/otel116.ts +17 -0
- package/dist/rules/otel117.ts +17 -0
- package/dist/skills/chant-otel.md +11 -5
- package/dist/topology.d.ts +5 -0
- package/dist/topology.d.ts.map +1 -1
- package/dist/validate-config.d.ts +6 -2
- package/dist/validate-config.d.ts.map +1 -1
- package/dist/validate.d.ts.map +1 -1
- package/package.json +2 -2
- package/src/codegen/docs.ts +9 -4
- package/src/components/common.ts +17 -0
- package/src/components/connectors.ts +209 -1
- package/src/components/exporters.ts +2 -0
- package/src/components/extensions.test.ts +70 -0
- package/src/components/extensions.ts +60 -2
- package/src/components/processors.test.ts +54 -0
- package/src/components/processors.ts +41 -2
- package/src/components/receivers.ts +5 -0
- package/src/composites/catalog.test.ts +38 -0
- package/src/composites/catalog.ts +81 -0
- package/src/composites/composites.test.ts +138 -0
- package/src/composites/index.ts +6 -0
- package/src/composites/node-agent.ts +219 -0
- package/src/configmap.ts +67 -0
- package/src/connectors.test.ts +197 -1
- package/src/define.ts +9 -0
- package/src/genai.test.ts +301 -6
- package/src/genai.ts +323 -8
- package/src/generated/lexicon-otel.json +15 -0
- package/src/import/roundtrip.test.ts +21 -1
- package/src/import/testdata/fixtures.ts +37 -5
- package/src/import/testdata/k8s-leader-elector.yaml +35 -0
- package/src/import/testdata/signaltometrics.yaml +83 -0
- package/src/index.ts +16 -0
- package/src/init-templates.test.ts +72 -0
- package/src/init-templates.ts +146 -0
- package/src/lint/audit-catalog.ts +41 -1
- package/src/lint/post-synth/connector-graph.test.ts +207 -0
- package/src/lint/post-synth/index.ts +10 -0
- package/src/lint/post-synth/otel-helpers.ts +43 -11
- package/src/lint/post-synth/otel113.ts +17 -0
- package/src/lint/post-synth/otel114.ts +17 -0
- package/src/lint/post-synth/otel115.ts +17 -0
- package/src/lint/post-synth/otel116.ts +17 -0
- package/src/lint/post-synth/otel117.ts +17 -0
- package/src/lint/post-synth/post-synth.test.ts +223 -1
- package/src/lint/post-synth/testdata/otel113-fail.yaml +23 -0
- package/src/lint/post-synth/testdata/otel113-pass.yaml +21 -0
- package/src/lint/post-synth/testdata/otel114-fail.yaml +25 -0
- package/src/lint/post-synth/testdata/otel114-pass.yaml +23 -0
- package/src/lint/post-synth/testdata/otel115-fail.yaml +29 -0
- package/src/lint/post-synth/testdata/otel115-pass.yaml +29 -0
- package/src/plugin.test.ts +18 -0
- package/src/plugin.ts +22 -0
- package/src/skills/chant-otel.md +11 -5
- package/src/testdata/genai-configured.yaml +108 -0
- package/src/testdata/genai-default.yaml +92 -0
- package/src/topology.test.ts +12 -0
- package/src/topology.ts +16 -0
- package/src/typecheck.test.ts +112 -0
- package/src/validate-config.ts +415 -2
- package/src/validate.ts +17 -0
package/dist/genai.d.ts
CHANGED
|
@@ -17,11 +17,26 @@
|
|
|
17
17
|
* output tokens by model). `spanmetrics` counts spans and
|
|
18
18
|
* cannot sum an attribute, which is why token usage comes from the `sum`
|
|
19
19
|
* connector.
|
|
20
|
+
*
|
|
21
|
+
* With `clientMetrics: "derive"`, a `signaltometrics` connector on the same
|
|
22
|
+
* branch also emits the two client metrics the conventions define at the pin,
|
|
23
|
+
* `gen_ai.client.operation.duration` and `gen_ai.client.token.usage`, under
|
|
24
|
+
* their own names, attributes, units and buckets. `clientMetrics:
|
|
25
|
+
* "passthrough"` derives nothing and relies on the SDK to send them. Either
|
|
26
|
+
* way a `metrics` pipeline passes the SDK's OTLP metrics through. Without the
|
|
27
|
+
* option the output is what it was before the option existed.
|
|
28
|
+
*
|
|
29
|
+
* `sum` emits delta sums. The `prometheus` exporter accumulates them itself,
|
|
30
|
+
* but `prometheusremotewrite` drops them, and some OTLP backends store only
|
|
31
|
+
* cumulative data; `signaltometrics` emits delta histograms too.
|
|
32
|
+
* `deltaToCumulative` puts a `deltatocumulative` processor on `metrics/genai`
|
|
33
|
+
* for those. It is on by default only with `clientMetrics: "derive"`, so a
|
|
34
|
+
* config built without either option is unchanged.
|
|
20
35
|
*/
|
|
21
36
|
import type { Declarable } from "@intentius/chant/declarable";
|
|
22
37
|
import { type OTelComponent, type SchemaPin } from "./define.js";
|
|
23
38
|
import { type FilterProcessorConfig, type RedactionProcessorConfig, type TransformProcessorConfig } from "./components/filtering.js";
|
|
24
|
-
import { type ForwardConnectorConfig, type SpanMetricsConnectorConfig, type SpanMetricsDimension, type SumConnectorConfig } from "./components/connectors.js";
|
|
39
|
+
import { type ForwardConnectorConfig, type SignalToMetricsConnectorConfig, type SpanMetricsConnectorConfig, type SpanMetricsDimension, type SumConnectorConfig } from "./components/connectors.js";
|
|
25
40
|
import type { Duration } from "./components/common.js";
|
|
26
41
|
import { type CollectorMetric } from "./metric-names.js";
|
|
27
42
|
/** GenAI attributes the preset reads. */
|
|
@@ -36,6 +51,11 @@ export declare const GENAI_ATTRIBUTES: Readonly<{
|
|
|
36
51
|
readonly outputTokens: "gen_ai.usage.output_tokens";
|
|
37
52
|
/** From the general conventions; GenAI spans set it on failure. */
|
|
38
53
|
readonly errorType: "error.type";
|
|
54
|
+
/** A metric attribute only: `input` or `output` on `gen_ai.client.token.usage`. */
|
|
55
|
+
readonly tokenType: "gen_ai.token.type";
|
|
56
|
+
/** From the general conventions: the GenAI server's host and port. */
|
|
57
|
+
readonly serverAddress: "server.address";
|
|
58
|
+
readonly serverPort: "server.port";
|
|
39
59
|
}>;
|
|
40
60
|
/**
|
|
41
61
|
* Attributes that carry content: what users and models said, and what tools
|
|
@@ -50,6 +70,32 @@ export declare const GENAI_CONTENT_ATTRIBUTES: readonly string[];
|
|
|
50
70
|
* index keeps `gen_ai.prompt.name`, a convention attribute, out of it.
|
|
51
71
|
*/
|
|
52
72
|
export declare const GENAI_INDEXED_CONTENT_PATTERN = "^gen_ai\\.(prompt|completion)\\.[0-9]+\\..+$";
|
|
73
|
+
/**
|
|
74
|
+
* Attributes that take a new value per response, tool call, conversation,
|
|
75
|
+
* session or user. As a metric attribute, each one starts new time series
|
|
76
|
+
* for every value, so OTEL116 reports them (and the content keys above)
|
|
77
|
+
* wherever a connector splits a metric by one.
|
|
78
|
+
*
|
|
79
|
+
* At `GENAI_SEMCONV_PIN` (semantic-conventions v1.41.1) the conventions
|
|
80
|
+
* define `gen_ai.conversation.id`, `gen_ai.response.id` and
|
|
81
|
+
* `gen_ai.tool.call.id` in `model/gen-ai/registry.yaml`, `session.id` in
|
|
82
|
+
* `model/session/registry.yaml`, `user.id` in `model/user/registry.yaml` and
|
|
83
|
+
* `enduser.id` in `model/enduser/registry.yaml`. None of them is an attribute
|
|
84
|
+
* of any GenAI metric there (`model/gen-ai/metrics.yaml`).
|
|
85
|
+
* `gen_ai.request.previous_response.id` and `gen_ai.memory.record.id` are
|
|
86
|
+
* not at the pin: they come from the unreleased main of
|
|
87
|
+
* github.com/open-telemetry/semantic-conventions-genai, and are listed
|
|
88
|
+
* because instrumentation already sets them. Keys added with that pin
|
|
89
|
+
* (chant #3044) go here too.
|
|
90
|
+
*/
|
|
91
|
+
export declare const GENAI_HIGH_CARDINALITY_ATTRIBUTES: readonly string[];
|
|
92
|
+
/**
|
|
93
|
+
* Why a key must not be a metric attribute: `"identifier"` for a key in
|
|
94
|
+
* `GENAI_HIGH_CARDINALITY_ATTRIBUTES`, `"content"` for a content key
|
|
95
|
+
* (`GENAI_CONTENT_ATTRIBUTES` or the indexed pattern), which is unbounded
|
|
96
|
+
* and sensitive too. Undefined for any other key.
|
|
97
|
+
*/
|
|
98
|
+
export declare function genAiCardinalityRisk(key: string): "identifier" | "content" | undefined;
|
|
53
99
|
/**
|
|
54
100
|
* Deprecated content events. Their content is in the log record body, not in
|
|
55
101
|
* attributes, so the preset deletes `content`, `message` and `tool_calls`
|
|
@@ -68,20 +114,75 @@ export declare const GENAI_TOKEN_DIMENSIONS: readonly string[];
|
|
|
68
114
|
export declare const GENAI_UNKNOWN_MODEL = "unknown";
|
|
69
115
|
/** Default duration buckets, sized for model and tool calls rather than HTTP handlers. */
|
|
70
116
|
export declare const GENAI_DURATION_BUCKETS: readonly Duration[];
|
|
117
|
+
/**
|
|
118
|
+
* Dimensions `providerDimensions: true` adds to `genai.calls` and
|
|
119
|
+
* `genai.duration`. The token sums keep the model alone (see
|
|
120
|
+
* `GENAI_TOKEN_DIMENSIONS`); `gen_ai.client.token.usage` splits tokens by both.
|
|
121
|
+
*/
|
|
122
|
+
export declare const GENAI_PROVIDER_DIMENSIONS: readonly string[];
|
|
123
|
+
/** The client metrics the conventions define that one span carries enough to derive. */
|
|
124
|
+
export declare const GENAI_CLIENT_METRIC_NAMES: Readonly<{
|
|
125
|
+
readonly operationDuration: "gen_ai.client.operation.duration";
|
|
126
|
+
readonly tokenUsage: "gen_ai.client.token.usage";
|
|
127
|
+
}>;
|
|
128
|
+
/** The values of `gen_ai.token.type` on `gen_ai.client.token.usage`. */
|
|
129
|
+
export declare const GENAI_TOKEN_TYPES: Readonly<{
|
|
130
|
+
readonly input: "input";
|
|
131
|
+
readonly output: "output";
|
|
132
|
+
}>;
|
|
133
|
+
/**
|
|
134
|
+
* The attributes the conventions give both client metrics: required
|
|
135
|
+
* (`gen_ai.operation.name`, `gen_ai.provider.name`), conditionally required
|
|
136
|
+
* (`gen_ai.request.model`, `error.type`) and recommended
|
|
137
|
+
* (`gen_ai.response.model`, `server.address`, `server.port`).
|
|
138
|
+
* `gen_ai.client.token.usage` adds `gen_ai.token.type`.
|
|
139
|
+
*/
|
|
140
|
+
export declare const GENAI_CLIENT_METRIC_ATTRIBUTES: readonly string[];
|
|
141
|
+
/** The bucket boundaries the conventions advise for `gen_ai.client.operation.duration`, in seconds. */
|
|
142
|
+
export declare const GENAI_CLIENT_DURATION_BUCKETS: readonly number[];
|
|
143
|
+
/** The bucket boundaries the conventions advise for `gen_ai.client.token.usage`, in tokens. */
|
|
144
|
+
export declare const GENAI_CLIENT_TOKEN_BUCKETS: readonly number[];
|
|
145
|
+
/**
|
|
146
|
+
* Where the conventions' client metrics come from. `derive`: the collector
|
|
147
|
+
* builds them from spans. `passthrough`: the SDK already sends them, so the
|
|
148
|
+
* collector passes them on and derives nothing, since both would double
|
|
149
|
+
* every series.
|
|
150
|
+
*/
|
|
151
|
+
export type GenAiClientMetricsSource = "derive" | "passthrough";
|
|
71
152
|
/** One metric the preset emits, as the collector names it and as Prometheus exposes it. */
|
|
72
153
|
export type GenAiMetric = CollectorMetric;
|
|
154
|
+
/** The conventions' client metrics, under their own names. */
|
|
155
|
+
export interface GenAiClientMetrics {
|
|
156
|
+
source: GenAiClientMetricsSource;
|
|
157
|
+
/** `gen_ai.client.operation.duration`, a histogram in seconds. Its `_count` is the operation count. */
|
|
158
|
+
operationDuration: GenAiMetric;
|
|
159
|
+
/** `gen_ai.client.token.usage`, a histogram in tokens; select `gen_ai_token_type` `input` or `output`. */
|
|
160
|
+
tokenUsage: GenAiMetric;
|
|
161
|
+
}
|
|
73
162
|
export interface GenAiMetrics {
|
|
74
163
|
/** Span count, with `status.code` = `STATUS_CODE_ERROR` for errors. */
|
|
75
164
|
calls: GenAiMetric;
|
|
76
165
|
duration: GenAiMetric;
|
|
77
166
|
inputTokens: GenAiMetric;
|
|
78
167
|
outputTokens: GenAiMetric;
|
|
168
|
+
/** The conventions' client metrics. Present only when `clientMetrics` is set. */
|
|
169
|
+
client?: GenAiClientMetrics;
|
|
79
170
|
}
|
|
80
171
|
export interface GenAiMetricsOptions {
|
|
81
172
|
/** Prefix of the emitted metric names. Default `genai`, outside the conventions' own `gen_ai` namespace. */
|
|
82
173
|
namespace?: string;
|
|
83
174
|
/** Dimensions added to the span metrics beyond the GenAI ones. */
|
|
84
175
|
dimensions?: SpanMetricsDimension[];
|
|
176
|
+
/** Add `gen_ai.provider.name` and `gen_ai.response.model` to `genai.calls` and `genai.duration`. Default false. */
|
|
177
|
+
providerDimensions?: boolean;
|
|
178
|
+
/**
|
|
179
|
+
* Also produce the conventions' client metrics, `gen_ai.client.operation.duration`
|
|
180
|
+
* and `gen_ai.client.token.usage`. `derive` builds them from spans;
|
|
181
|
+
* `passthrough` expects the SDK to send them. Either adds a `metrics`
|
|
182
|
+
* pipeline that passes the SDK's OTLP metrics through. Unset (the default)
|
|
183
|
+
* leaves the output as it was. The `genai.*` metrics are emitted either way.
|
|
184
|
+
*/
|
|
185
|
+
clientMetrics?: GenAiClientMetricsSource;
|
|
85
186
|
}
|
|
86
187
|
/**
|
|
87
188
|
* The metrics `genAiPipeline()` emits for the given options: names,
|
|
@@ -128,16 +229,43 @@ export interface GenAiComponents {
|
|
|
128
229
|
spanMetrics: OTelComponent<"connector", "spanmetrics", SpanMetricsConnectorConfig>;
|
|
129
230
|
/** Input and output token sums (`sum/genai_tokens`). */
|
|
130
231
|
tokenUsage: OTelComponent<"connector", "sum", SumConnectorConfig>;
|
|
232
|
+
/**
|
|
233
|
+
* `gen_ai.client.operation.duration` and `gen_ai.client.token.usage` from
|
|
234
|
+
* spans (`signaltometrics/genai_client`). Present with `clientMetrics: "derive"`;
|
|
235
|
+
* wire it like `spanMetrics`.
|
|
236
|
+
*/
|
|
237
|
+
clientMetrics?: OTelComponent<"connector", "signaltometrics", SignalToMetricsConnectorConfig>;
|
|
238
|
+
/**
|
|
239
|
+
* Drops the SDK's own copies of the derived client metrics from metrics
|
|
240
|
+
* passed through from the SDK (`filter/genai_sdk_client`), so each series
|
|
241
|
+
* is counted once. Present with `clientMetrics: "derive"`; put it on the
|
|
242
|
+
* pipeline that receives the SDK's OTLP metrics.
|
|
243
|
+
*/
|
|
244
|
+
sdkClientMetricsFilter?: OTelComponent<"processor", "filter", FilterProcessorConfig>;
|
|
131
245
|
metrics: GenAiMetrics;
|
|
132
246
|
/** The semantic conventions the attribute keys follow. */
|
|
133
247
|
semconv: SchemaPin;
|
|
134
248
|
}
|
|
135
249
|
/** The pieces of the GenAI preset, for wiring into pipelines you declare yourself. */
|
|
136
250
|
export declare function genAiComponents(options?: GenAiComponentsOptions): GenAiComponents;
|
|
251
|
+
/**
|
|
252
|
+
* Metric exporters that take delta sums and histograms as they are: the
|
|
253
|
+
* `prometheus` exporter accumulates them itself, and `debug` prints them.
|
|
254
|
+
* Any other exporter gets cumulative data under `deltaToCumulative: "auto"`.
|
|
255
|
+
* `prometheusremotewrite`, for one, drops non-cumulative monotonic sums,
|
|
256
|
+
* histograms and summaries (its README at collector-contrib v0.130.0).
|
|
257
|
+
*/
|
|
258
|
+
export declare const DELTA_READY_EXPORTERS: readonly string[];
|
|
259
|
+
/** Whether `deltaToCumulative` puts a `deltatocumulative` processor on `metrics/genai` for these exporters. */
|
|
260
|
+
export declare function genAiNeedsDeltaToCumulative(setting: GenAiPipelineOptions["deltaToCumulative"], metricExporters: readonly Exporter[]): boolean;
|
|
137
261
|
export interface GenAiPipelineOptions extends GenAiComponentsOptions {
|
|
138
262
|
/** Where traces go. Default: one `debug` exporter at `basic` verbosity. */
|
|
139
263
|
traceExporters?: Exporter[];
|
|
140
|
-
/**
|
|
264
|
+
/**
|
|
265
|
+
* Where the span and token metrics go, and with `clientMetrics` the SDK's
|
|
266
|
+
* metrics too. Default: the same `debug` exporter. See `deltaToCumulative`
|
|
267
|
+
* for exporters that need cumulative data.
|
|
268
|
+
*/
|
|
141
269
|
metricExporters?: Exporter[];
|
|
142
270
|
/** Where logs (and events sent as logs) go. Default: the same `debug` exporter. */
|
|
143
271
|
logExporters?: Exporter[];
|
|
@@ -151,6 +279,21 @@ export interface GenAiPipelineOptions extends GenAiComponentsOptions {
|
|
|
151
279
|
sampling?: Processor[];
|
|
152
280
|
/** Serve `health_check` on 0.0.0.0:13133. Default: true. */
|
|
153
281
|
healthCheck?: boolean;
|
|
282
|
+
/**
|
|
283
|
+
* Put a `deltatocumulative/genai` processor in front of `batch` on
|
|
284
|
+
* `metrics/genai`, so the delta token sums of the `sum` connector, and with
|
|
285
|
+
* `clientMetrics: "derive"` the delta histograms of `signaltometrics`, reach
|
|
286
|
+
* exporters as cumulative data. The span metrics are cumulative already and
|
|
287
|
+
* pass through unchanged. `"auto"`: when a metric exporter is not in
|
|
288
|
+
* `DELTA_READY_EXPORTERS` (`prometheus`, `debug`), such as
|
|
289
|
+
* `prometheusremotewrite` or `otlp`. `true`: always. `false`: never, such
|
|
290
|
+
* as for an OTLP backend that wants deltas. Unset: `"auto"` with
|
|
291
|
+
* `clientMetrics: "derive"`, otherwise `false`, which is the output from
|
|
292
|
+
* before the option existed. The processor keeps running totals in memory,
|
|
293
|
+
* so a collector behind a load balancer needs each stream to reach one
|
|
294
|
+
* replica.
|
|
295
|
+
*/
|
|
296
|
+
deltaToCumulative?: boolean | "auto";
|
|
154
297
|
}
|
|
155
298
|
/**
|
|
156
299
|
* The entities of an OTLP collector for GenAI workloads: an `otlp` receiver
|
package/dist/genai.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"genai.d.ts","sourceRoot":"","sources":["../src/genai.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"genai.d.ts","sourceRoot":"","sources":["../src/genai.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -6,10 +6,12 @@ export { defineComponent, definitionFor, definitionOf, registeredDefinitions, co
|
|
|
6
6
|
export * from "./model.js";
|
|
7
7
|
export { buildCollectorConfig, collectorYaml, componentConfig, type BuiltCollector } from "./collector.js";
|
|
8
8
|
export { emitCollectorYaml, type EmitOptions } from "./yaml.js";
|
|
9
|
+
export { configMapCollectorConfigs, describeConfigMapConfig, parseCollectorConfig, type ConfigMapCollectorConfig } from "./configmap.js";
|
|
9
10
|
export { validateCollectorConfig, validateCollectorEntities, type CollectorIssue, type CollectorIssueCode, } from "./validate-config.js";
|
|
10
11
|
export { collectorTopology, collectorTopologyOf, type CollectorTopology, type TopologyPipeline, type TopologyComponent, type TopologyExporter, type TopologyEdge, type SemconvUsage, } from "./topology.js";
|
|
11
12
|
export { semconvUsage, SEMCONV_VOCABULARIES, type SemconvVocabulary } from "./semconv.js";
|
|
13
|
+
export { NodeAgent, nodeAgentPropsProblem, type NodeAgentProps, type NodeAgentMembers, type NodeAgentInstance } from "./composites/index.js";
|
|
12
14
|
export { otlpCollector, collectorEndpoints, COLLECTOR_IMAGE, COLLECTOR_CONFIG_PATH, type OtlpCollectorOptions, type CollectorPort, type CollectorEndpoints, } from "./platform.js";
|
|
13
|
-
export { genAiPipeline, genAiComponents, genAiMetrics, GENAI_ATTRIBUTES, GENAI_CONTENT_ATTRIBUTES, GENAI_CONTENT_EVENTS, GENAI_INDEXED_CONTENT_PATTERN, GENAI_SPAN_METRIC_DIMENSIONS, GENAI_TOKEN_DIMENSIONS, GENAI_DURATION_BUCKETS, GENAI_UNKNOWN_MODEL, type GenAiPipelineOptions, type GenAiComponentsOptions, type GenAiComponents, type GenAiMetricsOptions, type GenAiMetrics, type GenAiMetric, } from "./genai.js";
|
|
15
|
+
export { genAiPipeline, genAiComponents, genAiMetrics, GENAI_ATTRIBUTES, GENAI_CONTENT_ATTRIBUTES, GENAI_CONTENT_EVENTS, GENAI_INDEXED_CONTENT_PATTERN, GENAI_HIGH_CARDINALITY_ATTRIBUTES, genAiCardinalityRisk, GENAI_SPAN_METRIC_DIMENSIONS, GENAI_TOKEN_DIMENSIONS, GENAI_DURATION_BUCKETS, GENAI_UNKNOWN_MODEL, GENAI_PROVIDER_DIMENSIONS, GENAI_CLIENT_METRIC_NAMES, GENAI_CLIENT_METRIC_ATTRIBUTES, GENAI_CLIENT_DURATION_BUCKETS, GENAI_CLIENT_TOKEN_BUCKETS, GENAI_TOKEN_TYPES, DELTA_READY_EXPORTERS, genAiNeedsDeltaToCumulative, type GenAiPipelineOptions, type GenAiComponentsOptions, type GenAiComponents, type GenAiMetricsOptions, type GenAiMetrics, type GenAiMetric, type GenAiClientMetrics, type GenAiClientMetricsSource, } from "./genai.js";
|
|
14
16
|
export { spanMetricsNames, prometheusMetricName, prometheusLabel, SPANMETRICS_DEFAULT_DIMENSIONS, SPANMETRICS_DEFAULT_NAMESPACE, SPAN_STATUS_ERROR, type CollectorMetric, type SpanMetricsNames, type SpanMetricsNamingConfig, type PrometheusNaming, } from "./metric-names.js";
|
|
15
17
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AACtC,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAG9C,cAAc,cAAc,CAAC;AAG7B,OAAO,EACL,QAAQ,EACR,OAAO,EACP,aAAa,EACb,YAAY,EACZ,gBAAgB,EAChB,eAAe,EACf,KAAK,YAAY,EACjB,KAAK,aAAa,EAClB,KAAK,cAAc,EACnB,KAAK,YAAY,EACjB,KAAK,aAAa,EAClB,KAAK,gBAAgB,GACtB,MAAM,YAAY,CAAC;AAGpB,OAAO,EACL,eAAe,EACf,aAAa,EACb,YAAY,EACZ,qBAAqB,EACrB,mBAAmB,EACnB,eAAe,EACf,aAAa,EACb,iBAAiB,EACjB,KAAK,SAAS,EACd,KAAK,eAAe,EACpB,KAAK,eAAe,EACpB,KAAK,mBAAmB,EACxB,KAAK,sBAAsB,EAC3B,KAAK,cAAc,EACnB,KAAK,cAAc,EACnB,KAAK,aAAa,GACnB,MAAM,UAAU,CAAC;AAGlB,cAAc,SAAS,CAAC;AACxB,OAAO,EAAE,oBAAoB,EAAE,aAAa,EAAE,eAAe,EAAE,KAAK,cAAc,EAAE,MAAM,aAAa,CAAC;AACxG,OAAO,EAAE,iBAAiB,EAAE,KAAK,WAAW,EAAE,MAAM,QAAQ,CAAC;AAC7D,OAAO,EACL,uBAAuB,EACvB,yBAAyB,EACzB,KAAK,cAAc,EACnB,KAAK,kBAAkB,GACxB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EACL,iBAAiB,EACjB,mBAAmB,EACnB,KAAK,iBAAiB,EACtB,KAAK,gBAAgB,EACrB,KAAK,iBAAiB,EACtB,KAAK,gBAAgB,EACrB,KAAK,YAAY,EACjB,KAAK,YAAY,GAClB,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,YAAY,EAAE,oBAAoB,EAAE,KAAK,iBAAiB,EAAE,MAAM,WAAW,CAAC;AAGvF,OAAO,EACL,aAAa,EACb,kBAAkB,EAClB,eAAe,EACf,qBAAqB,EACrB,KAAK,oBAAoB,EACzB,KAAK,aAAa,EAClB,KAAK,kBAAkB,GACxB,MAAM,YAAY,CAAC;AAGpB,OAAO,EACL,aAAa,EACb,eAAe,EACf,YAAY,EACZ,gBAAgB,EAChB,wBAAwB,EACxB,oBAAoB,EACpB,6BAA6B,EAC7B,4BAA4B,EAC5B,sBAAsB,EACtB,sBAAsB,EACtB,mBAAmB,EACnB,KAAK,oBAAoB,EACzB,KAAK,sBAAsB,EAC3B,KAAK,eAAe,EACpB,KAAK,mBAAmB,EACxB,KAAK,YAAY,EACjB,KAAK,WAAW,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AACtC,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAG9C,cAAc,cAAc,CAAC;AAG7B,OAAO,EACL,QAAQ,EACR,OAAO,EACP,aAAa,EACb,YAAY,EACZ,gBAAgB,EAChB,eAAe,EACf,KAAK,YAAY,EACjB,KAAK,aAAa,EAClB,KAAK,cAAc,EACnB,KAAK,YAAY,EACjB,KAAK,aAAa,EAClB,KAAK,gBAAgB,GACtB,MAAM,YAAY,CAAC;AAGpB,OAAO,EACL,eAAe,EACf,aAAa,EACb,YAAY,EACZ,qBAAqB,EACrB,mBAAmB,EACnB,eAAe,EACf,aAAa,EACb,iBAAiB,EACjB,KAAK,SAAS,EACd,KAAK,eAAe,EACpB,KAAK,eAAe,EACpB,KAAK,mBAAmB,EACxB,KAAK,sBAAsB,EAC3B,KAAK,cAAc,EACnB,KAAK,cAAc,EACnB,KAAK,aAAa,GACnB,MAAM,UAAU,CAAC;AAGlB,cAAc,SAAS,CAAC;AACxB,OAAO,EAAE,oBAAoB,EAAE,aAAa,EAAE,eAAe,EAAE,KAAK,cAAc,EAAE,MAAM,aAAa,CAAC;AACxG,OAAO,EAAE,iBAAiB,EAAE,KAAK,WAAW,EAAE,MAAM,QAAQ,CAAC;AAC7D,OAAO,EAAE,yBAAyB,EAAE,uBAAuB,EAAE,oBAAoB,EAAE,KAAK,wBAAwB,EAAE,MAAM,aAAa,CAAC;AACtI,OAAO,EACL,uBAAuB,EACvB,yBAAyB,EACzB,KAAK,cAAc,EACnB,KAAK,kBAAkB,GACxB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EACL,iBAAiB,EACjB,mBAAmB,EACnB,KAAK,iBAAiB,EACtB,KAAK,gBAAgB,EACrB,KAAK,iBAAiB,EACtB,KAAK,gBAAgB,EACrB,KAAK,YAAY,EACjB,KAAK,YAAY,GAClB,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,YAAY,EAAE,oBAAoB,EAAE,KAAK,iBAAiB,EAAE,MAAM,WAAW,CAAC;AAGvF,OAAO,EAAE,SAAS,EAAE,qBAAqB,EAAE,KAAK,cAAc,EAAE,KAAK,gBAAgB,EAAE,KAAK,iBAAiB,EAAE,MAAM,cAAc,CAAC;AAGpI,OAAO,EACL,aAAa,EACb,kBAAkB,EAClB,eAAe,EACf,qBAAqB,EACrB,KAAK,oBAAoB,EACzB,KAAK,aAAa,EAClB,KAAK,kBAAkB,GACxB,MAAM,YAAY,CAAC;AAGpB,OAAO,EACL,aAAa,EACb,eAAe,EACf,YAAY,EACZ,gBAAgB,EAChB,wBAAwB,EACxB,oBAAoB,EACpB,6BAA6B,EAC7B,iCAAiC,EACjC,oBAAoB,EACpB,4BAA4B,EAC5B,sBAAsB,EACtB,sBAAsB,EACtB,mBAAmB,EACnB,yBAAyB,EACzB,yBAAyB,EACzB,8BAA8B,EAC9B,6BAA6B,EAC7B,0BAA0B,EAC1B,iBAAiB,EACjB,qBAAqB,EACrB,2BAA2B,EAC3B,KAAK,oBAAoB,EACzB,KAAK,sBAAsB,EAC3B,KAAK,eAAe,EACpB,KAAK,mBAAmB,EACxB,KAAK,YAAY,EACjB,KAAK,WAAW,EAChB,KAAK,kBAAkB,EACvB,KAAK,wBAAwB,GAC9B,MAAM,SAAS,CAAC;AAGjB,OAAO,EACL,gBAAgB,EAChB,oBAAoB,EACpB,eAAe,EACf,8BAA8B,EAC9B,6BAA6B,EAC7B,iBAAiB,EACjB,KAAK,eAAe,EACpB,KAAK,gBAAgB,EACrB,KAAK,uBAAuB,EAC5B,KAAK,gBAAgB,GACtB,MAAM,gBAAgB,CAAC"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `chant init --lexicon otel` scaffolds.
|
|
3
|
+
*
|
|
4
|
+
* - default: OTLP in, `memory_limiter` and `batch`, traces to an OTLP
|
|
5
|
+
* backend and logs to `debug`, with a `health_check`.
|
|
6
|
+
* - `k8s-agent`: the config a per-node agent runs as a Kubernetes DaemonSet
|
|
7
|
+
* (`NodeAgent`): OTLP from the node's pods, host metrics and container
|
|
8
|
+
* logs, Kubernetes metadata on all of it, traces and logs on to a gateway
|
|
9
|
+
* and metrics served for Prometheus to scrape on each node.
|
|
10
|
+
* - `genai`: a collector for an agent service instrumented with the
|
|
11
|
+
* OpenTelemetry GenAI conventions (`genAiPipeline`): prompt and completion
|
|
12
|
+
* content removed, RED and token metrics and the conventions' client
|
|
13
|
+
* metrics derived from every GenAI span, traces to Tempo.
|
|
14
|
+
*
|
|
15
|
+
* Each template builds with the otel lexicon alone, which is all
|
|
16
|
+
* `chant init --lexicon otel` installs.
|
|
17
|
+
*/
|
|
18
|
+
import type { InitTemplateSet } from "@intentius/chant/lexicon";
|
|
19
|
+
export declare const DEFAULT_TEMPLATE: InitTemplateSet;
|
|
20
|
+
export declare const K8S_AGENT_TEMPLATE: InitTemplateSet;
|
|
21
|
+
export declare const GENAI_TEMPLATE: InitTemplateSet;
|
|
22
|
+
/** The template names `chant init --lexicon otel --template <name>` takes, besides the default. */
|
|
23
|
+
export declare const TEMPLATE_NAMES: readonly ["k8s-agent", "genai"];
|
|
24
|
+
//# sourceMappingURL=init-templates.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"init-templates.d.ts","sourceRoot":"","sources":["../src/init-templates.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AACH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAmHhE,eAAO,MAAM,gBAAgB,EAAE,eAE9B,CAAC;AAEF,eAAO,MAAM,kBAAkB,EAAE,eAEhC,CAAC;AAEF,eAAO,MAAM,cAAc,EAAE,eAE5B,CAAC;AAEF,mGAAmG;AACnG,eAAO,MAAM,cAAc,iCAAkC,CAAC"}
|
package/dist/integrity.json
CHANGED
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
{
|
|
2
2
|
"algorithm": "sha256",
|
|
3
3
|
"artifacts": {
|
|
4
|
-
"manifest.json": "
|
|
5
|
-
"meta.json": "
|
|
4
|
+
"manifest.json": "00c193d9c673fad45a3a6f1fb866d8a6b0ab2b3ef7b5c580eb0a211f18e4a8e3",
|
|
5
|
+
"meta.json": "884042882639c4dd91a8a97b9826869de90553ec4420fd1e6a0b08bb16fc5181",
|
|
6
6
|
"types/index.d.ts": "a1070fd1cb3e8d8a9002fc5a75a80b3bdda02965be351e8aed2dbc2f63d36e3c",
|
|
7
7
|
"rules/component-id-syntax.ts": "95f507614d2626159140d906bce9d086e8ecba18ede22f5ddfbda13ac1c08169",
|
|
8
8
|
"rules/literal-credential.ts": "48a235a772476bd56cdaaae3f6e90f8a9b2675317be6dcb48c89e54d2f7a5708",
|
|
9
9
|
"rules/otel-ast.ts": "cf286102f778bd010d130ad8de6adc279de517fffffcd49d7cfb3c419b4bec66",
|
|
10
|
-
"rules/otel-helpers.ts": "
|
|
10
|
+
"rules/otel-helpers.ts": "83976d3eae20d7532f59b2cc0bbdf4535e7de5c4ba9abf2915cf2974f43dd241",
|
|
11
11
|
"rules/otel101.ts": "9a9d5f79403fb07e78752f904741ab4cec8c0f00975b44fe0b6eace63fda4c13",
|
|
12
12
|
"rules/otel102.ts": "4b3612bc28097e46b33d6f7b187903fe1ecba4e5bda88189e9b1a5aaf37062a8",
|
|
13
13
|
"rules/otel103.ts": "8e404d7c7104a678de6351a4a4caf0aab1e6ae63c810cce889975bbeebc1a632",
|
|
@@ -18,9 +18,14 @@
|
|
|
18
18
|
"rules/otel108.ts": "5eddca667b3ec563a1a7bc745139738d438c4307b4861b999a4d8cff975856b6",
|
|
19
19
|
"rules/otel109.ts": "db025b5f09cc8c5199b420fdfd6e4bae0dd5abd1860903d8c9b4d625162a32b9",
|
|
20
20
|
"rules/otel112.ts": "0a6d9a7d6ba281f3b011dde18646f7c15280dcb8cfeddaa6d20c6080a2c92cb0",
|
|
21
|
-
"
|
|
21
|
+
"rules/otel113.ts": "7a62792f391fb8e96da0275442d60e597f1cbac4bcc73066c31f13f588fdd204",
|
|
22
|
+
"rules/otel114.ts": "58fa6380c6999cf1ba50f0159745c52aec1d44074c861b0c46e11eaccd0b1452",
|
|
23
|
+
"rules/otel115.ts": "09b20b93af83e7ebed0d189bfc34ffea51cb727a495d06fc4421e00e641633e2",
|
|
24
|
+
"rules/otel116.ts": "7a5b4b8ab497616549cdc748857a9ab367d83b23d97def4236d43ea85fa2b83c",
|
|
25
|
+
"rules/otel117.ts": "520a4316e42917f50e5541b0b0314eeb043d96186ec9332afc71a79fecc67fef",
|
|
26
|
+
"skills/chant-otel.md": "f24bee06a4286785e9a0e978dc6507a0932567c22541e65d7aaa4a91813a1345",
|
|
22
27
|
"skills/chant-otel-custom-components.md": "82e53bb482281f79b428e66fb80a1c194ead74a1a34a88bbebb11c6ad5493258",
|
|
23
28
|
"skills/chant-otel-platforms.md": "c90836952dc5c88d668b890152a5063bdb656bce73fc7fa3233a3ea58ad85686"
|
|
24
29
|
},
|
|
25
|
-
"composite": "
|
|
30
|
+
"composite": "df9754e540b750994772eee1488d9627e7b478f2cd613ba54f143753014cfe68"
|
|
26
31
|
}
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
* The otel lexicon's chant audit catalog, contributed via
|
|
3
3
|
* `otelPlugin.auditCatalog()` (#687, #1346).
|
|
4
4
|
*
|
|
5
|
-
* OTEL101-OTEL106 and OTEL112 read the emitted collector YAML, so they are
|
|
5
|
+
* OTEL101-OTEL106 and OTEL112-OTEL117 read the emitted collector YAML, so they are
|
|
6
6
|
* `yamlBased`.
|
|
7
7
|
* OTEL107-OTEL109 read the declared entities (a component's definition, its
|
|
8
8
|
* schema pin), which a standalone YAML file does not carry, so they are
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"audit-catalog.d.ts","sourceRoot":"","sources":["../../src/lint/audit-catalog.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,EAAa,KAAK,QAAQ,EAAE,MAAM,gCAAgC,CAAC;AAW1E,eAAO,MAAM,gBAAgB,EAAE,MAAM,CAAC,MAAM,EAAE,QAAQ,
|
|
1
|
+
{"version":3,"file":"audit-catalog.d.ts","sourceRoot":"","sources":["../../src/lint/audit-catalog.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,EAAa,KAAK,QAAQ,EAAE,MAAM,gCAAgC,CAAC;AAW1E,eAAO,MAAM,gBAAgB,EAAE,MAAM,CAAC,MAAM,EAAE,QAAQ,CA+HrD,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/lint/post-synth/index.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kCAAkC,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/lint/post-synth/index.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kCAAkC,CAAC;AAiBvE,eAAO,MAAM,eAAe,EAAE,cAAc,EAgB3C,CAAC"}
|
|
@@ -5,17 +5,40 @@
|
|
|
5
5
|
import type { PostSynthContext, PostSynthDiagnostic } from "@intentius/chant/lint/post-synth";
|
|
6
6
|
import { type CollectorConfig } from "../../model.js";
|
|
7
7
|
import { type CollectorIssueCode } from "../../validate-config.js";
|
|
8
|
-
/**
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
* because collector configs are written with flow lists (`[otlp, batch]`)
|
|
12
|
-
* that core's small YAML reader keeps as strings.
|
|
13
|
-
*/
|
|
14
|
-
export declare function collectorConfigs(ctx: PostSynthContext): Array<{
|
|
8
|
+
/** Where a collector config was found in the build output. */
|
|
9
|
+
export interface FoundCollectorConfig {
|
|
10
|
+
/** The lexicon output, or the output file, the config came from. */
|
|
15
11
|
source: string;
|
|
16
12
|
config: CollectorConfig;
|
|
17
|
-
|
|
18
|
-
|
|
13
|
+
/** Set when the config is a value in a Kubernetes ConfigMap (chant #2930). */
|
|
14
|
+
configMap?: {
|
|
15
|
+
namespace: string;
|
|
16
|
+
name: string;
|
|
17
|
+
key: string;
|
|
18
|
+
};
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* Every collector config in the output: the otel lexicon's own, any YAML
|
|
22
|
+
* document shaped like one, and any ConfigMap data value that parses as one
|
|
23
|
+
* (how `OtelCollector`, `OtelCollectorGateway` and `GkeOtelCollector` carry
|
|
24
|
+
* theirs). Parsed with js-yaml rather than `ctx.docs`, because collector
|
|
25
|
+
* configs are written with flow lists (`[otlp, batch]`) that core's small
|
|
26
|
+
* YAML reader keeps as strings.
|
|
27
|
+
*
|
|
28
|
+
* `chant build` hands each lexicon's checks only that lexicon's output, so
|
|
29
|
+
* the otel checks see ConfigMaps only in a context that includes k8s output.
|
|
30
|
+
* The k8s lexicon's WK8604 runs the same config checks over its own output.
|
|
31
|
+
*/
|
|
32
|
+
export declare function collectorConfigs(ctx: PostSynthContext): FoundCollectorConfig[];
|
|
33
|
+
/**
|
|
34
|
+
* Every config-level diagnostic (OTEL101-OTEL106, OTEL112-OTEL117 and any later
|
|
35
|
+
* config check) over the collector configs in the output. `configMapsOnly`
|
|
36
|
+
* keeps the configs held in ConfigMaps, which is what WK8604 reads.
|
|
37
|
+
*/
|
|
38
|
+
export declare function collectorConfigDiagnostics(ctx: PostSynthContext, opts?: {
|
|
39
|
+
configMapsOnly?: boolean;
|
|
40
|
+
}): PostSynthDiagnostic[];
|
|
41
|
+
/** Diagnostics for one config-level code (OTEL101-OTEL106, OTEL112-OTEL117) across every collector config in the output. */
|
|
19
42
|
export declare function configDiagnostics(ctx: PostSynthContext, code: CollectorIssueCode): PostSynthDiagnostic[];
|
|
20
43
|
/** Diagnostics for one entity-level code (OTEL107-OTEL109) over the build's otel entities. */
|
|
21
44
|
export declare function entityDiagnostics(ctx: PostSynthContext, code: CollectorIssueCode): PostSynthDiagnostic[];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"otel-helpers.d.ts","sourceRoot":"","sources":["../../../src/lint/post-synth/otel-helpers.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,MAAM,kCAAkC,CAAC;AAI9F,OAAO,EAA4B,KAAK,eAAe,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"otel-helpers.d.ts","sourceRoot":"","sources":["../../../src/lint/post-synth/otel-helpers.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,MAAM,kCAAkC,CAAC;AAI9F,OAAO,EAA4B,KAAK,eAAe,EAAE,MAAM,aAAa,CAAC;AAE7E,OAAO,EAAsD,KAAK,kBAAkB,EAAuB,MAAM,uBAAuB,CAAC;AAEzI,8DAA8D;AAC9D,MAAM,WAAW,oBAAoB;IACnC,oEAAoE;IACpE,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,eAAe,CAAC;IACxB,8EAA8E;IAC9E,SAAS,CAAC,EAAE;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAA;KAAE,CAAC;CAC9D;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,gBAAgB,GAAG,oBAAoB,EAAE,CA4B9E;AAaD;;;;GAIG;AACH,wBAAgB,0BAA0B,CAAC,GAAG,EAAE,gBAAgB,EAAE,IAAI,GAAE;IAAE,cAAc,CAAC,EAAE,OAAO,CAAA;CAAO,GAAG,mBAAmB,EAAE,CAIhI;AAED,4HAA4H;AAC5H,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,gBAAgB,EAAE,IAAI,EAAE,kBAAkB,GAAG,mBAAmB,EAAE,CAMxG;AAED,8FAA8F;AAC9F,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,gBAAgB,EAAE,IAAI,EAAE,kBAAkB,GAAG,mBAAmB,EAAE,CAKxG"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* OTEL113: Pipelines form a cycle through connectors
|
|
3
|
+
*
|
|
4
|
+
* A connector carries data from the pipeline that lists it as an exporter to the pipeline that lists it as a receiver. When those hops lead back to a pipeline already on the path (traces/a feeds traces/b through one connector and traces/b feeds traces/a through another, or one pipeline lists the same `forward` connector on both sides), the collector refuses to start. The check walks the `edges` `collectorTopology()` returns and names one cycle per group of pipelines caught in it.
|
|
5
|
+
*/
|
|
6
|
+
import type { PostSynthCheck } from "@intentius/chant/lint/post-synth";
|
|
7
|
+
export declare const otel113: PostSynthCheck;
|
|
8
|
+
//# sourceMappingURL=otel113.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"otel113.d.ts","sourceRoot":"","sources":["../../../src/lint/post-synth/otel113.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAyC,MAAM,kCAAkC,CAAC;AAG9G,eAAO,MAAM,OAAO,EAAE,cAOrB,CAAC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* OTEL114: A connector id is also declared as a receiver or exporter
|
|
3
|
+
*
|
|
4
|
+
* A pipeline names a connector the same way it names a receiver or an exporter, so the collector refuses a config where a connector id is also declared under `receivers` or `exporters`, whether or not any pipeline uses it.
|
|
5
|
+
*/
|
|
6
|
+
import type { PostSynthCheck } from "@intentius/chant/lint/post-synth";
|
|
7
|
+
export declare const otel114: PostSynthCheck;
|
|
8
|
+
//# sourceMappingURL=otel114.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"otel114.d.ts","sourceRoot":"","sources":["../../../src/lint/post-synth/otel114.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAyC,MAAM,kCAAkC,CAAC;AAG9G,eAAO,MAAM,OAAO,EAAE,cAOrB,CAAC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* OTEL115: A routing connector routes to a pipeline that does not receive from it
|
|
3
|
+
*
|
|
4
|
+
* Every pipeline a `routing` connector names in `table[].pipelines` or `default_pipelines` must list that connector in its receivers. The connector can only hand data to the pipelines it feeds, and the collector refuses to start when a route names any other pipeline or one that does not exist.
|
|
5
|
+
*/
|
|
6
|
+
import type { PostSynthCheck } from "@intentius/chant/lint/post-synth";
|
|
7
|
+
export declare const otel115: PostSynthCheck;
|
|
8
|
+
//# sourceMappingURL=otel115.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"otel115.d.ts","sourceRoot":"","sources":["../../../src/lint/post-synth/otel115.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAyC,MAAM,kCAAkC,CAAC;AAG9G,eAAO,MAAM,OAAO,EAAE,cAOrB,CAAC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* OTEL116: A connector splits metrics by a high-cardinality GenAI attribute
|
|
3
|
+
*
|
|
4
|
+
* `gen_ai.conversation.id`, `gen_ai.response.id`, `gen_ai.tool.call.id`, `session.id`, `user.id`, `enduser.id` and the other keys in `GENAI_HIGH_CARDINALITY_ATTRIBUTES` take a new value per response, conversation or user, and the content keys (`gen_ai.input.messages` and the rest of `GENAI_CONTENT_ATTRIBUTES`) are unbounded. Used as a metric attribute in `spanmetrics` or `servicegraph` dimensions, `sum` or `count` attributes, or `signaltometrics` attributes or `include_resource_attributes`, each value starts new time series. The collector accepts such a config without a warning.
|
|
5
|
+
*/
|
|
6
|
+
import type { PostSynthCheck } from "@intentius/chant/lint/post-synth";
|
|
7
|
+
export declare const otel116: PostSynthCheck;
|
|
8
|
+
//# sourceMappingURL=otel116.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"otel116.d.ts","sourceRoot":"","sources":["../../../src/lint/post-synth/otel116.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAyC,MAAM,kCAAkC,CAAC;AAG9G,eAAO,MAAM,OAAO,EAAE,cAOrB,CAAC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* OTEL117: Two components the collector starts listen on the same address
|
|
3
|
+
*
|
|
4
|
+
* A receiver or exporter a pipeline lists, an extension in `service.extensions`, and the collector's own metrics endpoint (`localhost:8888` unless `service.telemetry.metrics` says otherwise) each bind an address when the collector starts. Two on the same port, on the same host or with either on a wildcard host (`0.0.0.0`, `::`), make the second bind fail with "address already in use", and the collector exits. `otelcol validate` does not bind, so it accepts such a config. The listeners checked are the otlp, zipkin and jaeger receivers, the prometheus exporter, and the health_check, zpages and pprof extensions, with their defaults at the pinned collector release.
|
|
5
|
+
*/
|
|
6
|
+
import type { PostSynthCheck } from "@intentius/chant/lint/post-synth";
|
|
7
|
+
export declare const otel117: PostSynthCheck;
|
|
8
|
+
//# sourceMappingURL=otel117.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"otel117.d.ts","sourceRoot":"","sources":["../../../src/lint/post-synth/otel117.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAyC,MAAM,kCAAkC,CAAC;AAG9G,eAAO,MAAM,OAAO,EAAE,cAOrB,CAAC"}
|
package/dist/manifest.json
CHANGED
package/dist/meta.json
CHANGED
|
@@ -19,6 +19,11 @@
|
|
|
19
19
|
"kind": "resource",
|
|
20
20
|
"lexicon": "otel"
|
|
21
21
|
},
|
|
22
|
+
"DeltaToCumulativeProcessor": {
|
|
23
|
+
"resourceType": "OTel::Processor::deltatocumulative",
|
|
24
|
+
"kind": "resource",
|
|
25
|
+
"lexicon": "otel"
|
|
26
|
+
},
|
|
22
27
|
"FileLogReceiver": {
|
|
23
28
|
"resourceType": "OTel::Receiver::filelog",
|
|
24
29
|
"kind": "resource",
|
|
@@ -59,6 +64,11 @@
|
|
|
59
64
|
"kind": "resource",
|
|
60
65
|
"lexicon": "otel"
|
|
61
66
|
},
|
|
67
|
+
"K8sLeaderElectorExtension": {
|
|
68
|
+
"resourceType": "OTel::Extension::k8s_leader_elector",
|
|
69
|
+
"kind": "resource",
|
|
70
|
+
"lexicon": "otel"
|
|
71
|
+
},
|
|
62
72
|
"KubeletStatsReceiver": {
|
|
63
73
|
"resourceType": "OTel::Receiver::kubeletstats",
|
|
64
74
|
"kind": "resource",
|
|
@@ -144,6 +154,11 @@
|
|
|
144
154
|
"kind": "resource",
|
|
145
155
|
"lexicon": "otel"
|
|
146
156
|
},
|
|
157
|
+
"SignalToMetricsConnector": {
|
|
158
|
+
"resourceType": "OTel::Connector::signaltometrics",
|
|
159
|
+
"kind": "resource",
|
|
160
|
+
"lexicon": "otel"
|
|
161
|
+
},
|
|
147
162
|
"SpanMetricsConnector": {
|
|
148
163
|
"resourceType": "OTel::Connector::spanmetrics",
|
|
149
164
|
"kind": "resource",
|
package/dist/okf/index.md
CHANGED
|
@@ -8,6 +8,7 @@ okf_version: '0.2'
|
|
|
8
8
|
* [BatchProcessor](/types/BatchProcessor.md) - OTel::Processor::batch
|
|
9
9
|
* [CountConnector](/types/CountConnector.md) - OTel::Connector::count
|
|
10
10
|
* [DebugExporter](/types/DebugExporter.md) - OTel::Exporter::debug
|
|
11
|
+
* [DeltaToCumulativeProcessor](/types/DeltaToCumulativeProcessor.md) - OTel::Processor::deltatocumulative
|
|
11
12
|
* [FileLogReceiver](/types/FileLogReceiver.md) - OTel::Receiver::filelog
|
|
12
13
|
* [FilterProcessor](/types/FilterProcessor.md) - OTel::Processor::filter
|
|
13
14
|
* [ForwardConnector](/types/ForwardConnector.md) - OTel::Connector::forward
|
|
@@ -16,6 +17,7 @@ okf_version: '0.2'
|
|
|
16
17
|
* [HostMetricsReceiver](/types/HostMetricsReceiver.md) - OTel::Receiver::hostmetrics
|
|
17
18
|
* [K8sAttributesProcessor](/types/K8sAttributesProcessor.md) - OTel::Processor::k8sattributes
|
|
18
19
|
* [K8sClusterReceiver](/types/K8sClusterReceiver.md) - OTel::Receiver::k8s_cluster
|
|
20
|
+
* [K8sLeaderElectorExtension](/types/K8sLeaderElectorExtension.md) - OTel::Extension::k8s_leader_elector
|
|
19
21
|
* [KubeletStatsReceiver](/types/KubeletStatsReceiver.md) - OTel::Receiver::kubeletstats
|
|
20
22
|
* [LoadBalancingExporter](/types/LoadBalancingExporter.md) - OTel::Exporter::loadbalancing
|
|
21
23
|
* [MemoryLimiterProcessor](/types/MemoryLimiterProcessor.md) - OTel::Processor::memory_limiter
|
|
@@ -33,6 +35,7 @@ okf_version: '0.2'
|
|
|
33
35
|
* [RoutingConnector](/types/RoutingConnector.md) - OTel::Connector::routing
|
|
34
36
|
* [Service](/types/Service.md) - OTel::Service
|
|
35
37
|
* [ServiceGraphConnector](/types/ServiceGraphConnector.md) - OTel::Connector::servicegraph
|
|
38
|
+
* [SignalToMetricsConnector](/types/SignalToMetricsConnector.md) - OTel::Connector::signaltometrics
|
|
36
39
|
* [SpanMetricsConnector](/types/SpanMetricsConnector.md) - OTel::Connector::spanmetrics
|
|
37
40
|
* [SumConnector](/types/SumConnector.md) - OTel::Connector::sum
|
|
38
41
|
* [TailSamplingProcessor](/types/TailSamplingProcessor.md) - OTel::Processor::tail_sampling
|
|
@@ -53,3 +56,8 @@ okf_version: '0.2'
|
|
|
53
56
|
* [OTEL108](/rules/OTEL108.md) - Two components or two pipelines declare the same id
|
|
54
57
|
* [OTEL109](/rules/OTEL109.md) - A custom component has no schema pin
|
|
55
58
|
* [OTEL112](/rules/OTEL112.md) - A connector joins pipelines whose signals it does not convert
|
|
59
|
+
* [OTEL113](/rules/OTEL113.md) - Pipelines form a cycle through connectors
|
|
60
|
+
* [OTEL114](/rules/OTEL114.md) - A connector id is also declared as a receiver or exporter
|
|
61
|
+
* [OTEL115](/rules/OTEL115.md) - A routing connector routes to a pipeline that does not receive from it
|
|
62
|
+
* [OTEL116](/rules/OTEL116.md) - A connector splits metrics by a high-cardinality GenAI attribute
|
|
63
|
+
* [OTEL117](/rules/OTEL117.md) - Two components the collector starts listen on the same address
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
---
|
|
2
|
+
type: post-synth-check
|
|
3
|
+
title: OTEL113
|
|
4
|
+
description: Pipelines form a cycle through connectors
|
|
5
|
+
id: OTEL113
|
|
6
|
+
severity: error
|
|
7
|
+
category: post-synth
|
|
8
|
+
lexicon: otel
|
|
9
|
+
docs: https://intentius.io/chant/lexicons/otel/rules/
|
|
10
|
+
---
|
|
11
|
+
Pipelines form a cycle through connectors
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
---
|
|
2
|
+
type: post-synth-check
|
|
3
|
+
title: OTEL114
|
|
4
|
+
description: A connector id is also declared as a receiver or exporter
|
|
5
|
+
id: OTEL114
|
|
6
|
+
severity: error
|
|
7
|
+
category: post-synth
|
|
8
|
+
lexicon: otel
|
|
9
|
+
docs: https://intentius.io/chant/lexicons/otel/rules/
|
|
10
|
+
---
|
|
11
|
+
A connector id is also declared as a receiver or exporter
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
---
|
|
2
|
+
type: post-synth-check
|
|
3
|
+
title: OTEL115
|
|
4
|
+
description: A routing connector routes to a pipeline that does not receive from it
|
|
5
|
+
id: OTEL115
|
|
6
|
+
severity: error
|
|
7
|
+
category: post-synth
|
|
8
|
+
lexicon: otel
|
|
9
|
+
docs: https://intentius.io/chant/lexicons/otel/rules/
|
|
10
|
+
---
|
|
11
|
+
A routing connector routes to a pipeline that does not receive from it
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
---
|
|
2
|
+
type: post-synth-check
|
|
3
|
+
title: OTEL116
|
|
4
|
+
description: A connector splits metrics by a high-cardinality GenAI attribute
|
|
5
|
+
id: OTEL116
|
|
6
|
+
severity: error
|
|
7
|
+
category: post-synth
|
|
8
|
+
lexicon: otel
|
|
9
|
+
docs: https://intentius.io/chant/lexicons/otel/rules/
|
|
10
|
+
---
|
|
11
|
+
A connector splits metrics by a high-cardinality GenAI attribute
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
---
|
|
2
|
+
type: post-synth-check
|
|
3
|
+
title: OTEL117
|
|
4
|
+
description: Two components the collector starts listen on the same address
|
|
5
|
+
id: OTEL117
|
|
6
|
+
severity: error
|
|
7
|
+
category: post-synth
|
|
8
|
+
lexicon: otel
|
|
9
|
+
docs: https://intentius.io/chant/lexicons/otel/rules/
|
|
10
|
+
---
|
|
11
|
+
Two components the collector starts listen on the same address
|