@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.
Files changed (122) hide show
  1. package/README.md +8 -6
  2. package/dist/codegen/docs.d.ts.map +1 -1
  3. package/dist/components/common.d.ts +2 -0
  4. package/dist/components/common.d.ts.map +1 -1
  5. package/dist/components/connectors.d.ts +109 -1
  6. package/dist/components/connectors.d.ts.map +1 -1
  7. package/dist/components/exporters.d.ts.map +1 -1
  8. package/dist/components/extensions.d.ts +26 -2
  9. package/dist/components/extensions.d.ts.map +1 -1
  10. package/dist/components/processors.d.ts +15 -2
  11. package/dist/components/processors.d.ts.map +1 -1
  12. package/dist/components/receivers.d.ts.map +1 -1
  13. package/dist/composites/catalog.d.ts +3 -0
  14. package/dist/composites/catalog.d.ts.map +1 -0
  15. package/dist/composites/index.d.ts +6 -0
  16. package/dist/composites/index.d.ts.map +1 -0
  17. package/dist/composites/node-agent.d.ts +110 -0
  18. package/dist/composites/node-agent.d.ts.map +1 -0
  19. package/dist/configmap.d.ts +35 -0
  20. package/dist/configmap.d.ts.map +1 -0
  21. package/dist/define.d.ts +9 -0
  22. package/dist/define.d.ts.map +1 -1
  23. package/dist/genai.d.ts +145 -2
  24. package/dist/genai.d.ts.map +1 -1
  25. package/dist/index.d.ts +3 -1
  26. package/dist/index.d.ts.map +1 -1
  27. package/dist/init-templates.d.ts +24 -0
  28. package/dist/init-templates.d.ts.map +1 -0
  29. package/dist/integrity.json +10 -5
  30. package/dist/lint/audit-catalog.d.ts +1 -1
  31. package/dist/lint/audit-catalog.d.ts.map +1 -1
  32. package/dist/lint/post-synth/index.d.ts.map +1 -1
  33. package/dist/lint/post-synth/otel-helpers.d.ts +32 -9
  34. package/dist/lint/post-synth/otel-helpers.d.ts.map +1 -1
  35. package/dist/lint/post-synth/otel113.d.ts +8 -0
  36. package/dist/lint/post-synth/otel113.d.ts.map +1 -0
  37. package/dist/lint/post-synth/otel114.d.ts +8 -0
  38. package/dist/lint/post-synth/otel114.d.ts.map +1 -0
  39. package/dist/lint/post-synth/otel115.d.ts +8 -0
  40. package/dist/lint/post-synth/otel115.d.ts.map +1 -0
  41. package/dist/lint/post-synth/otel116.d.ts +8 -0
  42. package/dist/lint/post-synth/otel116.d.ts.map +1 -0
  43. package/dist/lint/post-synth/otel117.d.ts +8 -0
  44. package/dist/lint/post-synth/otel117.d.ts.map +1 -0
  45. package/dist/manifest.json +1 -1
  46. package/dist/meta.json +15 -0
  47. package/dist/okf/index.md +8 -0
  48. package/dist/okf/rules/OTEL113.md +11 -0
  49. package/dist/okf/rules/OTEL114.md +11 -0
  50. package/dist/okf/rules/OTEL115.md +11 -0
  51. package/dist/okf/rules/OTEL116.md +11 -0
  52. package/dist/okf/rules/OTEL117.md +11 -0
  53. package/dist/okf/types/DeltaToCumulativeProcessor.md +9 -0
  54. package/dist/okf/types/K8sLeaderElectorExtension.md +9 -0
  55. package/dist/okf/types/SignalToMetricsConnector.md +9 -0
  56. package/dist/plugin.d.ts.map +1 -1
  57. package/dist/rules/otel-helpers.ts +43 -11
  58. package/dist/rules/otel113.ts +17 -0
  59. package/dist/rules/otel114.ts +17 -0
  60. package/dist/rules/otel115.ts +17 -0
  61. package/dist/rules/otel116.ts +17 -0
  62. package/dist/rules/otel117.ts +17 -0
  63. package/dist/skills/chant-otel.md +11 -5
  64. package/dist/topology.d.ts +5 -0
  65. package/dist/topology.d.ts.map +1 -1
  66. package/dist/validate-config.d.ts +6 -2
  67. package/dist/validate-config.d.ts.map +1 -1
  68. package/dist/validate.d.ts.map +1 -1
  69. package/package.json +2 -2
  70. package/src/codegen/docs.ts +9 -4
  71. package/src/components/common.ts +17 -0
  72. package/src/components/connectors.ts +209 -1
  73. package/src/components/exporters.ts +2 -0
  74. package/src/components/extensions.test.ts +70 -0
  75. package/src/components/extensions.ts +60 -2
  76. package/src/components/processors.test.ts +54 -0
  77. package/src/components/processors.ts +41 -2
  78. package/src/components/receivers.ts +5 -0
  79. package/src/composites/catalog.test.ts +38 -0
  80. package/src/composites/catalog.ts +81 -0
  81. package/src/composites/composites.test.ts +138 -0
  82. package/src/composites/index.ts +6 -0
  83. package/src/composites/node-agent.ts +219 -0
  84. package/src/configmap.ts +67 -0
  85. package/src/connectors.test.ts +197 -1
  86. package/src/define.ts +9 -0
  87. package/src/genai.test.ts +301 -6
  88. package/src/genai.ts +323 -8
  89. package/src/generated/lexicon-otel.json +15 -0
  90. package/src/import/roundtrip.test.ts +21 -1
  91. package/src/import/testdata/fixtures.ts +37 -5
  92. package/src/import/testdata/k8s-leader-elector.yaml +35 -0
  93. package/src/import/testdata/signaltometrics.yaml +83 -0
  94. package/src/index.ts +16 -0
  95. package/src/init-templates.test.ts +72 -0
  96. package/src/init-templates.ts +146 -0
  97. package/src/lint/audit-catalog.ts +41 -1
  98. package/src/lint/post-synth/connector-graph.test.ts +207 -0
  99. package/src/lint/post-synth/index.ts +10 -0
  100. package/src/lint/post-synth/otel-helpers.ts +43 -11
  101. package/src/lint/post-synth/otel113.ts +17 -0
  102. package/src/lint/post-synth/otel114.ts +17 -0
  103. package/src/lint/post-synth/otel115.ts +17 -0
  104. package/src/lint/post-synth/otel116.ts +17 -0
  105. package/src/lint/post-synth/otel117.ts +17 -0
  106. package/src/lint/post-synth/post-synth.test.ts +223 -1
  107. package/src/lint/post-synth/testdata/otel113-fail.yaml +23 -0
  108. package/src/lint/post-synth/testdata/otel113-pass.yaml +21 -0
  109. package/src/lint/post-synth/testdata/otel114-fail.yaml +25 -0
  110. package/src/lint/post-synth/testdata/otel114-pass.yaml +23 -0
  111. package/src/lint/post-synth/testdata/otel115-fail.yaml +29 -0
  112. package/src/lint/post-synth/testdata/otel115-pass.yaml +29 -0
  113. package/src/plugin.test.ts +18 -0
  114. package/src/plugin.ts +22 -0
  115. package/src/skills/chant-otel.md +11 -5
  116. package/src/testdata/genai-configured.yaml +108 -0
  117. package/src/testdata/genai-default.yaml +92 -0
  118. package/src/topology.test.ts +12 -0
  119. package/src/topology.ts +16 -0
  120. package/src/typecheck.test.ts +112 -0
  121. package/src/validate-config.ts +415 -2
  122. 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
- /** Where the span and token metrics go. Default: the same `debug` exporter. */
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
@@ -1 +1 @@
1
- {"version":3,"file":"genai.d.ts","sourceRoot":"","sources":["../src/genai.ts"],"names":[],"mappings":"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"}
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
@@ -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,GACjB,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"}
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"}
@@ -1,13 +1,13 @@
1
1
  {
2
2
  "algorithm": "sha256",
3
3
  "artifacts": {
4
- "manifest.json": "0d3aebbc1678b4e82762ab6465eb538bf7d9f59f48a1ab208100a6db7b348b38",
5
- "meta.json": "664490c2bee6c839f22994b789adc4708b01a37195f9c193dfb3c974959c5d74",
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": "22f5ed00f5cf33638558eb4363c7deeeefa2cdc3e666404f5235caf471fb1466",
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
- "skills/chant-otel.md": "f77c11e59c9ee782525fd28b1450397754762c045f917735b7d2697a4ee608b5",
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": "4ac8f418f9c0caebe31a3ff2c012cb32e119b8f04cffaf6fc618869585eddb88"
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,CAuFrD,CAAC"}
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;AAYvE,eAAO,MAAM,eAAe,EAAE,cAAc,EAW3C,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
- * Every collector config in the output: the otel lexicon's own, and any YAML
10
- * document shaped like one. Parsed with js-yaml rather than `ctx.docs`,
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
- /** Diagnostics for one config-level code (OTEL101-OTEL106, OTEL112) across every collector config in the output. */
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;AAC7E,OAAO,EAAsD,KAAK,kBAAkB,EAAuB,MAAM,uBAAuB,CAAC;AAEzI;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,gBAAgB,GAAG,KAAK,CAAC;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,eAAe,CAAA;CAAE,CAAC,CAwB1G;AAYD,oHAAoH;AACpH,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"}
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"}
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "otel",
3
- "version": "0.100.0",
3
+ "version": "0.101.0",
4
4
  "chantVersion": ">=0.1.0",
5
5
  "namespace": "OTel",
6
6
  "intrinsics": [],
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