@intentius/chant-lexicon-otel 0.98.0 → 0.99.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.
@@ -4,8 +4,13 @@
4
4
  * Keys use the collector's own snake_case spelling, since they are emitted
5
5
  * unchanged.
6
6
  */
7
- /** A duration string the collector parses, e.g. `5s`, `250ms`, `1m30s`. */
8
- export type Duration = string;
7
+ /**
8
+ * A duration the collector parses: a string such as `5s`, `250ms` or
9
+ * `1m30s`, or a bare integer, which the collector reads as nanoseconds
10
+ * (collector-contrib's own servicegraph test config writes
11
+ * `latency_histogram_buckets: [1,2,3,4,5]`). Prefer the string form.
12
+ */
13
+ export type Duration = string | number;
9
14
  export interface TLSClientSettings {
10
15
  insecure?: boolean;
11
16
  insecure_skip_verify?: boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"common.d.ts","sourceRoot":"","sources":["../../src/components/common.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"common.d.ts","sourceRoot":"","sources":["../../src/components/common.ts"],"names":[],"mappings":"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"}
@@ -6,9 +6,51 @@
6
6
  * (which signal, which context, which list) and keeps each OTTL condition or
7
7
  * statement as a string; the collector parses them when it loads the config.
8
8
  */
9
+ import type { AttributesMatch } from "./processors.js";
9
10
  /** What an OTTL processor does when a condition or statement errors at run time. */
10
11
  export type OttlErrorMode = "ignore" | "silent" | "propagate";
11
- /** OTTL conditions per context. Telemetry matching any condition is dropped. */
12
+ /** An attribute a legacy include/exclude block matches on (`filterconfig.Attribute`). */
13
+ export interface FilterAttributeMatch {
14
+ key: string;
15
+ value?: unknown;
16
+ }
17
+ /** Options for the `regexp` match type (`filterset/regexp.Config`). */
18
+ export interface FilterRegexpSettings {
19
+ cacheenabled?: boolean;
20
+ cachemaxnumentries?: number;
21
+ }
22
+ /**
23
+ * The filter processor's legacy `metrics.include` / `metrics.exclude` block
24
+ * (`filterconfig.MetricMatchProperties`). `expr` takes `expressions` instead
25
+ * of `metric_names`.
26
+ */
27
+ export interface FilterMetricMatch {
28
+ match_type: "strict" | "regexp" | "expr";
29
+ regexp?: FilterRegexpSettings;
30
+ metric_names?: string[];
31
+ expressions?: string[];
32
+ resource_attributes?: FilterAttributeMatch[];
33
+ }
34
+ /** The filter processor's legacy `logs.include` / `logs.exclude` block (`LogMatchProperties`). */
35
+ export interface FilterLogMatch {
36
+ match_type: "strict" | "regexp";
37
+ resource_attributes?: FilterAttributeMatch[];
38
+ record_attributes?: FilterAttributeMatch[];
39
+ severity_texts?: string[];
40
+ /** Matches records at or above `min`, a severity number or name such as `INFO`. */
41
+ severity_number?: {
42
+ min: number | string;
43
+ match_undefined?: boolean;
44
+ };
45
+ bodies?: string[];
46
+ }
47
+ /**
48
+ * Conditions per signal. Telemetry matching any condition is dropped.
49
+ *
50
+ * Each signal takes OTTL conditions or the legacy `include` / `exclude`
51
+ * match blocks (for traces, the legacy blocks sit under `spans`), not both:
52
+ * the collector rejects a signal that mixes them.
53
+ */
12
54
  export interface FilterProcessorConfig {
13
55
  /** Default `propagate`: an erroring condition fails the batch. `ignore` logs and moves on. */
14
56
  error_mode?: OttlErrorMode;
@@ -18,15 +60,30 @@ export interface FilterProcessorConfig {
18
60
  /** Drops the span event. */
19
61
  spanevent?: string[];
20
62
  };
63
+ /** Legacy span matching. With `include`, spans that do not match are dropped; with `exclude`, spans that match. */
64
+ spans?: {
65
+ include?: AttributesMatch;
66
+ exclude?: AttributesMatch;
67
+ };
21
68
  metrics?: {
22
69
  /** Drops the whole metric, e.g. `name == "http.server.duration" and type == METRIC_DATA_TYPE_HISTOGRAM`. */
23
70
  metric?: string[];
24
71
  /** Drops the data point. */
25
72
  datapoint?: string[];
73
+ /** Legacy: keeps only the metrics that match. */
74
+ include?: FilterMetricMatch;
75
+ /** Legacy: drops the metrics that match. */
76
+ exclude?: FilterMetricMatch;
77
+ /** Legacy: options for the `regexp` match type. */
78
+ regexp?: FilterRegexpSettings;
26
79
  };
27
80
  logs?: {
28
81
  /** Drops the log record, e.g. `severity_number < SEVERITY_NUMBER_WARN`. */
29
82
  log_record?: string[];
83
+ /** Legacy: keeps only the log records that match. */
84
+ include?: FilterLogMatch;
85
+ /** Legacy: drops the log records that match. */
86
+ exclude?: FilterLogMatch;
30
87
  };
31
88
  }
32
89
  /** Drops spans, span events, metrics, data points and log records that match OTTL conditions. */
@@ -1 +1 @@
1
- {"version":3,"file":"filtering.d.ts","sourceRoot":"","sources":["../../src/components/filtering.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAIH,oFAAoF;AACpF,MAAM,MAAM,aAAa,GAAG,QAAQ,GAAG,QAAQ,GAAG,WAAW,CAAC;AAI9D,gFAAgF;AAChF,MAAM,WAAW,qBAAqB;IACpC,8FAA8F;IAC9F,UAAU,CAAC,EAAE,aAAa,CAAC;IAC3B,MAAM,CAAC,EAAE;QACP,qEAAqE;QACrE,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;QAChB,4BAA4B;QAC5B,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;KACtB,CAAC;IACF,OAAO,CAAC,EAAE;QACR,4GAA4G;QAC5G,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;QAClB,4BAA4B;QAC5B,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;KACtB,CAAC;IACF,IAAI,CAAC,EAAE;QACL,2EAA2E;QAC3E,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;KACvB,CAAC;CACH;AAED,iGAAiG;AACjG,eAAO,MAAM,eAAe,2EAuB1B,CAAC;AAIH,wDAAwD;AACxD,MAAM,MAAM,qBAAqB,GAAG,UAAU,GAAG,OAAO,GAAG,MAAM,GAAG,WAAW,CAAC;AAChF,yDAAyD;AACzD,MAAM,MAAM,sBAAsB,GAAG,UAAU,GAAG,OAAO,GAAG,QAAQ,GAAG,WAAW,CAAC;AACnF,sDAAsD;AACtD,MAAM,MAAM,mBAAmB,GAAG,UAAU,GAAG,OAAO,GAAG,KAAK,CAAC;AAE/D;;;GAGG;AACH,MAAM,WAAW,uBAAuB,CAAC,GAAG,SAAS,MAAM,GAAG,MAAM;IAClE,oGAAoG;IACpG,OAAO,CAAC,EAAE,GAAG,CAAC;IACd,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;IACtB,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,6DAA6D;IAC7D,UAAU,CAAC,EAAE,aAAa,CAAC;CAC5B;AAED,qFAAqF;AACrF,MAAM,MAAM,mBAAmB,CAAC,GAAG,SAAS,MAAM,IAAI,KAAK,CAAC,MAAM,GAAG,uBAAuB,CAAC,GAAG,CAAC,CAAC,CAAC;AAEnG,MAAM,WAAW,wBAAwB;IACvC,2BAA2B;IAC3B,UAAU,CAAC,EAAE,aAAa,CAAC;IAC3B,gBAAgB,CAAC,EAAE,mBAAmB,CAAC,qBAAqB,CAAC,CAAC;IAC9D,iBAAiB,CAAC,EAAE,mBAAmB,CAAC,sBAAsB,CAAC,CAAC;IAChE,cAAc,CAAC,EAAE,mBAAmB,CAAC,mBAAmB,CAAC,CAAC;CAC3D;AAQD,+EAA+E;AAC/E,eAAO,MAAM,kBAAkB,iFA2B7B,CAAC;AAIH;;;;;;;;;;;GAWG;AACH,MAAM,WAAW,wBAAwB;IACvC,gEAAgE;IAChE,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,4DAA4D;IAC5D,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB,mDAAmD;IACnD,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB,gEAAgE;IAChE,oBAAoB,CAAC,EAAE,MAAM,EAAE,CAAC;IAChC,sDAAsD;IACtD,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;IAC1B,uFAAuF;IACvF,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;IAC1B,sEAAsE;IACtE,aAAa,CAAC,EAAE,KAAK,GAAG,MAAM,GAAG,MAAM,CAAC;IACxC,iGAAiG;IACjG,OAAO,CAAC,EAAE,OAAO,GAAG,MAAM,GAAG,QAAQ,CAAC;CACvC;AAED,4GAA4G;AAC5G,eAAO,MAAM,kBAAkB,iFAwB7B,CAAC"}
1
+ {"version":3,"file":"filtering.d.ts","sourceRoot":"","sources":["../../src/components/filtering.ts"],"names":[],"mappings":"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"}
@@ -26,12 +26,22 @@ export interface ResourceProcessorConfig {
26
26
  }
27
27
  /** Inserts, updates or deletes resource attributes. */
28
28
  export declare const ResourceProcessor: import("../index.js").ComponentClass<"processor", "resource", ResourceProcessorConfig>;
29
+ /** An include/exclude block of the attributes processor and the filter processor's legacy `spans` (`filterconfig.MatchProperties`). */
29
30
  export interface AttributesMatch {
30
31
  match_type: "strict" | "regexp";
32
+ regexp?: {
33
+ cacheenabled?: boolean;
34
+ cachemaxnumentries?: number;
35
+ };
31
36
  services?: string[];
32
37
  span_names?: string[];
38
+ span_kinds?: string[];
33
39
  log_bodies?: string[];
34
40
  log_severity_texts?: string[];
41
+ log_severity_number?: {
42
+ min: number | string;
43
+ match_undefined?: boolean;
44
+ };
35
45
  metric_names?: string[];
36
46
  attributes?: Array<{
37
47
  key: string;
@@ -1 +1 @@
1
- {"version":3,"file":"processors.d.ts","sourceRoot":"","sources":["../../src/components/processors.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"processors.d.ts","sourceRoot":"","sources":["../../src/components/processors.ts"],"names":[],"mappings":"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"}
@@ -18,28 +18,108 @@ export interface PrometheusStaticConfig {
18
18
  targets: string[];
19
19
  labels?: Record<string, string>;
20
20
  }
21
- /** One Prometheus scrape job. Service-discovery and relabel blocks pass through as written. */
22
- export interface PrometheusScrapeConfig {
21
+ /** Prometheus's `tls_config` (prometheus/common `TLSConfig`). Versions are spelled `TLS12`, `TLS13`. */
22
+ export interface PrometheusTLSConfig {
23
+ ca?: string;
24
+ cert?: string;
25
+ key?: string;
26
+ ca_file?: string;
27
+ cert_file?: string;
28
+ key_file?: string;
29
+ ca_ref?: string;
30
+ cert_ref?: string;
31
+ key_ref?: string;
32
+ server_name?: string;
33
+ insecure_skip_verify?: boolean;
34
+ min_version?: string;
35
+ max_version?: string;
36
+ }
37
+ /** Prometheus's proxy settings, inlined into the HTTP client and OAuth2 blocks. */
38
+ export interface PrometheusProxySettings {
39
+ proxy_url?: string;
40
+ no_proxy?: string;
41
+ proxy_from_environment?: boolean;
42
+ proxy_connect_header?: Record<string, string[]>;
43
+ }
44
+ /** Scrape authentication with a user name and password. Prefer `password_file` or `${env:...}` to a literal password. */
45
+ export interface PrometheusBasicAuth {
46
+ username?: string;
47
+ username_file?: string;
48
+ username_ref?: string;
49
+ password?: string;
50
+ password_file?: string;
51
+ password_ref?: string;
52
+ }
53
+ /** An `Authorization` header: `type` defaults to `Bearer`. */
54
+ export interface PrometheusAuthorization {
55
+ type?: string;
56
+ credentials?: string;
57
+ credentials_file?: string;
58
+ credentials_ref?: string;
59
+ }
60
+ export interface PrometheusOAuth2 extends PrometheusProxySettings {
61
+ client_id: string;
62
+ client_secret?: string;
63
+ client_secret_file?: string;
64
+ client_secret_ref?: string;
65
+ scopes?: string[];
66
+ token_url: string;
67
+ endpoint_params?: Record<string, string>;
68
+ tls_config?: PrometheusTLSConfig;
69
+ }
70
+ /**
71
+ * One Prometheus scrape job, as the Prometheus release collector-contrib
72
+ * v0.130.0 embeds reads it (scrape settings plus prometheus/common's HTTP
73
+ * client settings). Service-discovery (`*_sd_configs`) and relabel blocks
74
+ * pass through as written.
75
+ */
76
+ export interface PrometheusScrapeConfig extends PrometheusProxySettings {
23
77
  job_name: string;
24
78
  scrape_interval?: Duration;
25
79
  scrape_timeout?: Duration;
80
+ scrape_protocols?: string[];
81
+ fallback_scrape_protocol?: string;
82
+ always_scrape_classic_histograms?: boolean;
83
+ convert_classic_histograms_to_nhcb?: boolean;
84
+ scrape_failure_log_file?: string;
26
85
  metrics_path?: string;
27
86
  scheme?: "http" | "https";
28
87
  honor_labels?: boolean;
29
88
  honor_timestamps?: boolean;
89
+ track_timestamps_staleness?: boolean;
90
+ enable_compression?: boolean;
30
91
  params?: Record<string, string[]>;
31
92
  static_configs?: PrometheusStaticConfig[];
32
93
  kubernetes_sd_configs?: Array<Record<string, unknown>>;
33
94
  file_sd_configs?: Array<Record<string, unknown>>;
95
+ /** Any other service-discovery block (`dns_sd_configs`, `ec2_sd_configs`, `consul_sd_configs`, ...). */
96
+ [sd: `${string}_sd_configs`]: Array<Record<string, unknown>> | undefined;
34
97
  relabel_configs?: Array<Record<string, unknown>>;
35
98
  metric_relabel_configs?: Array<Record<string, unknown>>;
36
- tls_config?: Record<string, unknown>;
37
- authorization?: {
38
- type?: string;
39
- credentials_file?: string;
40
- };
99
+ basic_auth?: PrometheusBasicAuth;
100
+ authorization?: PrometheusAuthorization;
101
+ oauth2?: PrometheusOAuth2;
102
+ bearer_token?: string;
41
103
  bearer_token_file?: string;
104
+ tls_config?: PrometheusTLSConfig;
105
+ follow_redirects?: boolean;
106
+ enable_http2?: boolean;
107
+ http_headers?: Record<string, {
108
+ values?: string[];
109
+ secrets?: string[];
110
+ files?: string[];
111
+ }>;
112
+ body_size_limit?: string;
42
113
  sample_limit?: number;
114
+ target_limit?: number;
115
+ label_limit?: number;
116
+ label_name_length_limit?: number;
117
+ label_value_length_limit?: number;
118
+ native_histogram_bucket_limit?: number;
119
+ native_histogram_min_bucket_factor?: number;
120
+ keep_dropped_targets?: number;
121
+ metric_name_validation_scheme?: "utf8" | "legacy";
122
+ metric_name_escaping_scheme?: "allow-utf-8" | "underscores" | "dots" | "values";
43
123
  }
44
124
  export interface PrometheusReceiverConfig {
45
125
  config: {
@@ -1 +1 @@
1
- {"version":3,"file":"receivers.d.ts","sourceRoot":"","sources":["../../src/components/receivers.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"receivers.d.ts","sourceRoot":"","sources":["../../src/components/receivers.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,12 @@
1
+ /**
2
+ * A collector config embedded in another lexicon's resource, e.g. the
3
+ * `config.yaml` of a k8s ConfigMap, for `chant import` (#2962).
4
+ *
5
+ * The config is imported exactly as `chant import config.yaml` would import
6
+ * it, into a directory of its own, and the host's value becomes
7
+ * `collectorYaml([...])` over every component, pipeline and service the
8
+ * import declares, which renders the same config text at build time.
9
+ */
10
+ import type { EmbeddedContentImporter } from "@intentius/chant/import/embedded";
11
+ export declare const collectorConfigImporter: EmbeddedContentImporter;
12
+ //# sourceMappingURL=embedded.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"embedded.d.ts","sourceRoot":"","sources":["../../src/import/embedded.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAE,uBAAuB,EAAkB,MAAM,kCAAkC,CAAC;AAWhG,eAAO,MAAM,uBAAuB,EAAE,uBAmBrC,CAAC"}
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "algorithm": "sha256",
3
3
  "artifacts": {
4
- "manifest.json": "cb39957cd5d360c633841a23f79c656f248a58e5b696b23df6560b92b993ecf3",
4
+ "manifest.json": "13f551fb075d89a09dc639e1a38685b93d008b16843161c171abad21403b31ee",
5
5
  "meta.json": "664490c2bee6c839f22994b789adc4708b01a37195f9c193dfb3c974959c5d74",
6
6
  "types/index.d.ts": "a1070fd1cb3e8d8a9002fc5a75a80b3bdda02965be351e8aed2dbc2f63d36e3c",
7
7
  "rules/component-id-syntax.ts": "95f507614d2626159140d906bce9d086e8ecba18ede22f5ddfbda13ac1c08169",
@@ -22,5 +22,5 @@
22
22
  "skills/chant-otel-custom-components.md": "82e53bb482281f79b428e66fb80a1c194ead74a1a34a88bbebb11c6ad5493258",
23
23
  "skills/chant-otel-platforms.md": "c90836952dc5c88d668b890152a5063bdb656bce73fc7fa3233a3ea58ad85686"
24
24
  },
25
- "composite": "22fa6fb9f67ca60493659623c02cf1141c9231c7a5c4691a14c72a9e44ecfef2"
25
+ "composite": "07ef419a3277d5576c0a8577dd09d7950af1d36a554e8df2cf26290dee9ba135"
26
26
  }
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "otel",
3
- "version": "0.98.0",
3
+ "version": "0.99.0",
4
4
  "chantVersion": ">=0.1.0",
5
5
  "namespace": "OTel",
6
6
  "intrinsics": [],
@@ -1 +1 @@
1
- {"version":3,"file":"plugin.d.ts","sourceRoot":"","sources":["../src/plugin.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AA2B9D;;;;;;;GAOG;AACH,eAAO,MAAM,UAAU,EAAE,aAqFxB,CAAC"}
1
+ {"version":3,"file":"plugin.d.ts","sourceRoot":"","sources":["../src/plugin.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AA4B9D;;;;;;;GAOG;AACH,eAAO,MAAM,UAAU,EAAE,aAyFxB,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@intentius/chant-lexicon-otel",
3
- "version": "0.98.0",
3
+ "version": "0.99.0",
4
4
  "description": "OpenTelemetry Collector lexicon for chant — typed receivers, processors, exporters, connectors, extensions and pipelines, serialized to collector YAML",
5
5
  "license": "Apache-2.0",
6
6
  "homepage": "https://intentius.io/chant",
@@ -68,7 +68,7 @@
68
68
  "typescript": "^5.9.3"
69
69
  },
70
70
  "peerDependencies": {
71
- "@intentius/chant": "^0.98.0",
71
+ "@intentius/chant": "^0.99.0",
72
72
  "typescript": "^5.9.3"
73
73
  }
74
74
  }
@@ -5,8 +5,13 @@
5
5
  * unchanged.
6
6
  */
7
7
 
8
- /** A duration string the collector parses, e.g. `5s`, `250ms`, `1m30s`. */
9
- export type Duration = string;
8
+ /**
9
+ * A duration the collector parses: a string such as `5s`, `250ms` or
10
+ * `1m30s`, or a bare integer, which the collector reads as nanoseconds
11
+ * (collector-contrib's own servicegraph test config writes
12
+ * `latency_histogram_buckets: [1,2,3,4,5]`). Prefer the string form.
13
+ */
14
+ export type Duration = string | number;
10
15
 
11
16
  export interface TLSClientSettings {
12
17
  insecure?: boolean;
@@ -81,6 +81,33 @@ describe("filter processor", () => {
81
81
  );
82
82
  expect(problems(new FilterProcessor({ logs: { log_record: ["true"] } }))).toEqual([]);
83
83
  });
84
+
85
+ test("the legacy include/exclude match blocks serialize as written and count as conditions", () => {
86
+ const filter = new FilterProcessor({
87
+ metrics: { exclude: { match_type: "strict", metric_names: ["up", "scrape_duration_seconds"] } },
88
+ logs: { include: { match_type: "regexp", severity_number: { min: "WARN", match_undefined: true }, bodies: ["^panic"] } },
89
+ spans: { exclude: { match_type: "strict", services: ["healthcheck"], span_kinds: ["SPAN_KIND_INTERNAL"] } },
90
+ });
91
+ expect(problems(filter)).toEqual([]);
92
+ const parsed = load(primary(otelSerializer.serialize(entities({ filter })))) as any;
93
+ expect(parsed.processors.filter.metrics.exclude.metric_names).toEqual(["up", "scrape_duration_seconds"]);
94
+ expect(parsed.processors.filter.logs.include.severity_number).toEqual({ min: "WARN", match_undefined: true });
95
+ expect(parsed.processors.filter.spans.exclude.span_kinds).toEqual(["SPAN_KIND_INTERNAL"]);
96
+ });
97
+
98
+ test("a signal that mixes OTTL conditions with include/exclude is reported, as the collector rejects it", () => {
99
+ const mixed = new FilterProcessor({
100
+ traces: { span: ["true"] },
101
+ spans: { include: { match_type: "strict", services: ["a"] } },
102
+ metrics: { metric: ["true"], exclude: { match_type: "expr", expressions: ["MetricName == 'up'"] } },
103
+ logs: { log_record: ["true"], exclude: { match_type: "strict", bodies: ["x"] } },
104
+ });
105
+ expect(problems(mixed)).toEqual([
106
+ "traces mixes OTTL conditions with include/exclude, which the collector rejects",
107
+ "metrics mixes OTTL conditions with include/exclude, which the collector rejects",
108
+ "logs mixes OTTL conditions with include/exclude, which the collector rejects",
109
+ ]);
110
+ });
84
111
  });
85
112
 
86
113
  describe("transform processor", () => {
@@ -8,13 +8,56 @@
8
8
  */
9
9
 
10
10
  import { defineBuiltin } from "../define";
11
+ import type { AttributesMatch } from "./processors";
11
12
 
12
13
  /** What an OTTL processor does when a condition or statement errors at run time. */
13
14
  export type OttlErrorMode = "ignore" | "silent" | "propagate";
14
15
 
15
16
  // ── filter ───────────────────────────────────────────────────────────
16
17
 
17
- /** OTTL conditions per context. Telemetry matching any condition is dropped. */
18
+ /** An attribute a legacy include/exclude block matches on (`filterconfig.Attribute`). */
19
+ export interface FilterAttributeMatch {
20
+ key: string;
21
+ value?: unknown;
22
+ }
23
+
24
+ /** Options for the `regexp` match type (`filterset/regexp.Config`). */
25
+ export interface FilterRegexpSettings {
26
+ cacheenabled?: boolean;
27
+ cachemaxnumentries?: number;
28
+ }
29
+
30
+ /**
31
+ * The filter processor's legacy `metrics.include` / `metrics.exclude` block
32
+ * (`filterconfig.MetricMatchProperties`). `expr` takes `expressions` instead
33
+ * of `metric_names`.
34
+ */
35
+ export interface FilterMetricMatch {
36
+ match_type: "strict" | "regexp" | "expr";
37
+ regexp?: FilterRegexpSettings;
38
+ metric_names?: string[];
39
+ expressions?: string[];
40
+ resource_attributes?: FilterAttributeMatch[];
41
+ }
42
+
43
+ /** The filter processor's legacy `logs.include` / `logs.exclude` block (`LogMatchProperties`). */
44
+ export interface FilterLogMatch {
45
+ match_type: "strict" | "regexp";
46
+ resource_attributes?: FilterAttributeMatch[];
47
+ record_attributes?: FilterAttributeMatch[];
48
+ severity_texts?: string[];
49
+ /** Matches records at or above `min`, a severity number or name such as `INFO`. */
50
+ severity_number?: { min: number | string; match_undefined?: boolean };
51
+ bodies?: string[];
52
+ }
53
+
54
+ /**
55
+ * Conditions per signal. Telemetry matching any condition is dropped.
56
+ *
57
+ * Each signal takes OTTL conditions or the legacy `include` / `exclude`
58
+ * match blocks (for traces, the legacy blocks sit under `spans`), not both:
59
+ * the collector rejects a signal that mixes them.
60
+ */
18
61
  export interface FilterProcessorConfig {
19
62
  /** Default `propagate`: an erroring condition fails the batch. `ignore` logs and moves on. */
20
63
  error_mode?: OttlErrorMode;
@@ -24,15 +67,27 @@ export interface FilterProcessorConfig {
24
67
  /** Drops the span event. */
25
68
  spanevent?: string[];
26
69
  };
70
+ /** Legacy span matching. With `include`, spans that do not match are dropped; with `exclude`, spans that match. */
71
+ spans?: { include?: AttributesMatch; exclude?: AttributesMatch };
27
72
  metrics?: {
28
73
  /** Drops the whole metric, e.g. `name == "http.server.duration" and type == METRIC_DATA_TYPE_HISTOGRAM`. */
29
74
  metric?: string[];
30
75
  /** Drops the data point. */
31
76
  datapoint?: string[];
77
+ /** Legacy: keeps only the metrics that match. */
78
+ include?: FilterMetricMatch;
79
+ /** Legacy: drops the metrics that match. */
80
+ exclude?: FilterMetricMatch;
81
+ /** Legacy: options for the `regexp` match type. */
82
+ regexp?: FilterRegexpSettings;
32
83
  };
33
84
  logs?: {
34
85
  /** Drops the log record, e.g. `severity_number < SEVERITY_NUMBER_WARN`. */
35
86
  log_record?: string[];
87
+ /** Legacy: keeps only the log records that match. */
88
+ include?: FilterLogMatch;
89
+ /** Legacy: drops the log records that match. */
90
+ exclude?: FilterLogMatch;
36
91
  };
37
92
  }
38
93
 
@@ -55,7 +110,15 @@ export const FilterProcessor = defineBuiltin<FilterProcessorConfig, "processor",
55
110
  if (typeof cond !== "string" || cond.trim() === "") problems.push(`${path}[${i}] is an empty condition`);
56
111
  });
57
112
  }
58
- if (lists.every(([, list]) => !list || list.length === 0)) {
113
+ const legacy: Array<[string, boolean, boolean]> = [
114
+ ["traces", !!(c.traces?.span || c.traces?.spanevent), !!(c.spans?.include || c.spans?.exclude)],
115
+ ["metrics", !!(c.metrics?.metric || c.metrics?.datapoint), !!(c.metrics?.include || c.metrics?.exclude)],
116
+ ["logs", !!c.logs?.log_record, !!(c.logs?.include || c.logs?.exclude)],
117
+ ];
118
+ for (const [signal, ottl, matchBlocks] of legacy) {
119
+ if (ottl && matchBlocks) problems.push(`${signal} mixes OTTL conditions with include/exclude, which the collector rejects`);
120
+ }
121
+ if (lists.every(([, list]) => !list || list.length === 0) && legacy.every(([, , matchBlocks]) => !matchBlocks)) {
59
122
  problems.push("no condition is set for any signal, so the processor drops nothing");
60
123
  }
61
124
  return problems;
@@ -73,12 +73,16 @@ export const ResourceProcessor = defineBuiltin<ResourceProcessorConfig, "process
73
73
 
74
74
  // ── attributes ───────────────────────────────────────────────────────
75
75
 
76
+ /** An include/exclude block of the attributes processor and the filter processor's legacy `spans` (`filterconfig.MatchProperties`). */
76
77
  export interface AttributesMatch {
77
78
  match_type: "strict" | "regexp";
79
+ regexp?: { cacheenabled?: boolean; cachemaxnumentries?: number };
78
80
  services?: string[];
79
81
  span_names?: string[];
82
+ span_kinds?: string[];
80
83
  log_bodies?: string[];
81
84
  log_severity_texts?: string[];
85
+ log_severity_number?: { min: number | string; match_undefined?: boolean };
82
86
  metric_names?: string[];
83
87
  attributes?: Array<{ key: string; value?: unknown }>;
84
88
  resources?: Array<{ key: string; value?: unknown }>;
@@ -44,25 +44,109 @@ export interface PrometheusStaticConfig {
44
44
  labels?: Record<string, string>;
45
45
  }
46
46
 
47
- /** One Prometheus scrape job. Service-discovery and relabel blocks pass through as written. */
48
- export interface PrometheusScrapeConfig {
47
+ /** Prometheus's `tls_config` (prometheus/common `TLSConfig`). Versions are spelled `TLS12`, `TLS13`. */
48
+ export interface PrometheusTLSConfig {
49
+ ca?: string;
50
+ cert?: string;
51
+ key?: string;
52
+ ca_file?: string;
53
+ cert_file?: string;
54
+ key_file?: string;
55
+ ca_ref?: string;
56
+ cert_ref?: string;
57
+ key_ref?: string;
58
+ server_name?: string;
59
+ insecure_skip_verify?: boolean;
60
+ min_version?: string;
61
+ max_version?: string;
62
+ }
63
+
64
+ /** Prometheus's proxy settings, inlined into the HTTP client and OAuth2 blocks. */
65
+ export interface PrometheusProxySettings {
66
+ proxy_url?: string;
67
+ no_proxy?: string;
68
+ proxy_from_environment?: boolean;
69
+ proxy_connect_header?: Record<string, string[]>;
70
+ }
71
+
72
+ /** Scrape authentication with a user name and password. Prefer `password_file` or `${env:...}` to a literal password. */
73
+ export interface PrometheusBasicAuth {
74
+ username?: string;
75
+ username_file?: string;
76
+ username_ref?: string;
77
+ password?: string;
78
+ password_file?: string;
79
+ password_ref?: string;
80
+ }
81
+
82
+ /** An `Authorization` header: `type` defaults to `Bearer`. */
83
+ export interface PrometheusAuthorization {
84
+ type?: string;
85
+ credentials?: string;
86
+ credentials_file?: string;
87
+ credentials_ref?: string;
88
+ }
89
+
90
+ export interface PrometheusOAuth2 extends PrometheusProxySettings {
91
+ client_id: string;
92
+ client_secret?: string;
93
+ client_secret_file?: string;
94
+ client_secret_ref?: string;
95
+ scopes?: string[];
96
+ token_url: string;
97
+ endpoint_params?: Record<string, string>;
98
+ tls_config?: PrometheusTLSConfig;
99
+ }
100
+
101
+ /**
102
+ * One Prometheus scrape job, as the Prometheus release collector-contrib
103
+ * v0.130.0 embeds reads it (scrape settings plus prometheus/common's HTTP
104
+ * client settings). Service-discovery (`*_sd_configs`) and relabel blocks
105
+ * pass through as written.
106
+ */
107
+ export interface PrometheusScrapeConfig extends PrometheusProxySettings {
49
108
  job_name: string;
50
109
  scrape_interval?: Duration;
51
110
  scrape_timeout?: Duration;
111
+ scrape_protocols?: string[];
112
+ fallback_scrape_protocol?: string;
113
+ always_scrape_classic_histograms?: boolean;
114
+ convert_classic_histograms_to_nhcb?: boolean;
115
+ scrape_failure_log_file?: string;
52
116
  metrics_path?: string;
53
117
  scheme?: "http" | "https";
54
118
  honor_labels?: boolean;
55
119
  honor_timestamps?: boolean;
120
+ track_timestamps_staleness?: boolean;
121
+ enable_compression?: boolean;
56
122
  params?: Record<string, string[]>;
57
123
  static_configs?: PrometheusStaticConfig[];
58
124
  kubernetes_sd_configs?: Array<Record<string, unknown>>;
59
125
  file_sd_configs?: Array<Record<string, unknown>>;
126
+ /** Any other service-discovery block (`dns_sd_configs`, `ec2_sd_configs`, `consul_sd_configs`, ...). */
127
+ [sd: `${string}_sd_configs`]: Array<Record<string, unknown>> | undefined;
60
128
  relabel_configs?: Array<Record<string, unknown>>;
61
129
  metric_relabel_configs?: Array<Record<string, unknown>>;
62
- tls_config?: Record<string, unknown>;
63
- authorization?: { type?: string; credentials_file?: string };
130
+ basic_auth?: PrometheusBasicAuth;
131
+ authorization?: PrometheusAuthorization;
132
+ oauth2?: PrometheusOAuth2;
133
+ bearer_token?: string;
64
134
  bearer_token_file?: string;
135
+ tls_config?: PrometheusTLSConfig;
136
+ follow_redirects?: boolean;
137
+ enable_http2?: boolean;
138
+ http_headers?: Record<string, { values?: string[]; secrets?: string[]; files?: string[] }>;
139
+ body_size_limit?: string;
65
140
  sample_limit?: number;
141
+ target_limit?: number;
142
+ label_limit?: number;
143
+ label_name_length_limit?: number;
144
+ label_value_length_limit?: number;
145
+ native_histogram_bucket_limit?: number;
146
+ native_histogram_min_bucket_factor?: number;
147
+ keep_dropped_targets?: number;
148
+ metric_name_validation_scheme?: "utf8" | "legacy";
149
+ metric_name_escaping_scheme?: "allow-utf-8" | "underscores" | "dots" | "values";
66
150
  }
67
151
 
68
152
  export interface PrometheusReceiverConfig {
@@ -0,0 +1,56 @@
1
+ import { describe, expect, test } from "vitest";
2
+ import { embeddedDocument, type EmbeddedContent } from "@intentius/chant/import/embedded";
3
+ import { otelPlugin } from "../plugin";
4
+ import { collectorConfigImporter } from "./embedded";
5
+
6
+ const CONFIG = `receivers:
7
+ otlp:
8
+ protocols:
9
+ grpc: {}
10
+ mycorp: {}
11
+ exporters:
12
+ debug: {}
13
+ service:
14
+ pipelines:
15
+ traces:
16
+ receivers: [otlp, mycorp]
17
+ exporters: [debug]
18
+ `;
19
+
20
+ const site = (text: string, over: Partial<EmbeddedContent> = {}): EmbeddedContent => ({
21
+ host: "k8s",
22
+ hostType: "K8s::Core::ConfigMap",
23
+ location: 'ConfigMap agent data["config.yaml"]',
24
+ directory: "agent",
25
+ text,
26
+ document: embeddedDocument(text),
27
+ ...over,
28
+ });
29
+
30
+ describe("a collector config embedded in another lexicon's resource (#2962)", () => {
31
+ test("the plugin registers the importer", () => {
32
+ expect(otelPlugin.embeddedImporters?.()).toEqual([collectorConfigImporter]);
33
+ });
34
+
35
+ test("matches collector configs held as text, nothing else", () => {
36
+ expect(collectorConfigImporter.matches(site(CONFIG))).toBe(true);
37
+ expect(collectorConfigImporter.matches(site("groups: []\n"))).toBe(false);
38
+ expect(collectorConfigImporter.matches(site(CONFIG, { select: "config" }))).toBe(false);
39
+ });
40
+
41
+ test("imports the config as `chant import` does, referenced through collectorYaml", () => {
42
+ const out = collectorConfigImporter.import(site(CONFIG));
43
+ expect(out.files.map((f) => f.path)).toEqual(["custom-components.ts", "receivers.ts", "exporters.ts", "pipelines.ts"]);
44
+ // Every declared component and pipeline, not the custom component's class.
45
+ expect(out.value).toEqual({
46
+ bindings: [
47
+ { from: "receivers.ts", name: "otlp" },
48
+ { from: "receivers.ts", name: "mycorp" },
49
+ { from: "exporters.ts", name: "debug" },
50
+ { from: "pipelines.ts", name: "traces" },
51
+ ],
52
+ shape: "list",
53
+ through: { from: "@intentius/chant-lexicon-otel", name: "collectorYaml" },
54
+ });
55
+ });
56
+ });
@@ -0,0 +1,41 @@
1
+ /**
2
+ * A collector config embedded in another lexicon's resource, e.g. the
3
+ * `config.yaml` of a k8s ConfigMap, for `chant import` (#2962).
4
+ *
5
+ * The config is imported exactly as `chant import config.yaml` would import
6
+ * it, into a directory of its own, and the host's value becomes
7
+ * `collectorYaml([...])` over every component, pipeline and service the
8
+ * import declares, which renders the same config text at build time.
9
+ */
10
+
11
+ import type { EmbeddedContentImporter, EmbeddedImport } from "@intentius/chant/import/embedded";
12
+ import { exportedNames } from "@intentius/chant/import/embedded";
13
+ import { looksLikeCollectorConfig } from "../model";
14
+ import { OtelCollectorParser } from "./parser";
15
+ import { OtelCollectorGenerator } from "./generator";
16
+
17
+ const PACKAGE = "@intentius/chant-lexicon-otel";
18
+
19
+ /** The module holding `defineComponent` classes: types, not config entities. */
20
+ const CUSTOM_COMPONENTS = "custom-components.ts";
21
+
22
+ export const collectorConfigImporter: EmbeddedContentImporter = {
23
+ what: "an OpenTelemetry Collector config",
24
+
25
+ matches(content) {
26
+ return typeof content.text === "string" && content.select === undefined && looksLikeCollectorConfig(content.document);
27
+ },
28
+
29
+ import(content): EmbeddedImport {
30
+ const ir = new OtelCollectorParser().parse(content.text!);
31
+ const files = new OtelCollectorGenerator().generate(ir);
32
+ const bindings = files
33
+ .filter((f) => f.path !== CUSTOM_COMPONENTS)
34
+ .flatMap((f) => exportedNames(f.content).map((name) => ({ from: f.path, name })));
35
+ return {
36
+ files,
37
+ value: { bindings, shape: "list", through: { from: PACKAGE, name: "collectorYaml" } },
38
+ warnings: ir.warnings ?? [],
39
+ };
40
+ },
41
+ };
@@ -4,14 +4,14 @@
4
4
  * budget allows, so this runs with the e2e tests.
5
5
  */
6
6
  import { describe, expect, test } from "vitest";
7
- import { mkdirSync, mkdtempSync, rmSync, writeFileSync } from "fs";
7
+ import { mkdirSync, mkdtempSync, readdirSync, rmSync, writeFileSync } from "fs";
8
8
  import { join } from "path";
9
9
  import * as ts from "typescript";
10
10
  import { collectorYaml } from "../collector";
11
11
  import { genAiPipeline } from "../genai";
12
12
  import { OtelCollectorParser } from "./parser";
13
13
  import { OtelCollectorGenerator } from "./generator";
14
- import { everyBuiltin, exampleOutputs, pkgDir, read, repoRoot, UPSTREAM_BUILTIN_ONLY } from "./testdata/fixtures";
14
+ import { everyBuiltin, exampleOutputs, pkgDir, read, repoRoot } from "./testdata/fixtures";
15
15
 
16
16
  /** Type errors in generated projects, compiled together against the lexicon's source with the repo's compiler options. */
17
17
  function typeErrors(projects: Record<string, Array<{ path: string; content: string }>>): string[] {
@@ -45,31 +45,66 @@ function typeErrors(projects: Record<string, Array<{ path: string; content: stri
45
45
 
46
46
  const generate = (yaml: string) => new OtelCollectorGenerator().generate(new OtelCollectorParser().parse(yaml));
47
47
 
48
+ /** Every vendored import fixture, by path under testdata/: the chant-built configs and the collector-contrib ones. */
49
+ function vendoredFixtures(): string[] {
50
+ const dir = join(import.meta.dirname, "testdata");
51
+ const yamlIn = (sub: string) =>
52
+ readdirSync(join(dir, sub))
53
+ .filter((f) => f.endsWith(".yaml"))
54
+ .sort()
55
+ .map((f) => (sub ? `${sub}/${f}` : f));
56
+ return [...yamlIn(""), ...yamlIn("upstream")];
57
+ }
58
+
48
59
  describe("the generated source type-checks against the lexicon's config types", () => {
49
- test("for every fixture whose config stays within the typed fields", async () => {
60
+ test("for every vendored fixture, every example's output, genAiPipeline() and every built-in's typed fields", async () => {
61
+ const fixtures = vendoredFixtures();
62
+ // The corpus the round-trip tests read; a missing directory would pass vacuously.
63
+ expect(fixtures).toEqual(expect.arrayContaining(["gateway.yaml", "upstream/couchbase.yaml", "upstream/servicegraph-nop.yaml"]));
64
+ expect(fixtures.length).toBeGreaterThanOrEqual(12);
50
65
  const projects: Record<string, Array<{ path: string; content: string }>> = {
51
- gateway: generate(read("gateway.yaml")),
52
- agent: generate(read("agent-observability-agent.yaml")),
53
- agentGateway: generate(read("agent-observability-gateway.yaml")),
66
+ ...Object.fromEntries(fixtures.map((f) => [f, generate(read(...f.split("/")))])),
54
67
  genai: generate(collectorYaml(genAiPipeline())),
55
68
  everyBuiltin: generate(collectorYaml(everyBuiltin())),
56
- faultTolerant: generate(read("upstream", "fault-tolerant-logs.yaml")),
57
- ...Object.fromEntries(UPSTREAM_BUILTIN_ONLY.map((f) => [f, generate(read("upstream", f))])),
58
- ...Object.fromEntries((await exampleOutputs()).map(([n, y]) => [n, generate(y)])),
69
+ ...Object.fromEntries((await exampleOutputs()).map(([n, y]) => [`example-${n}`, generate(y)])),
59
70
  };
60
71
  expect(typeErrors(projects)).toEqual([]);
61
72
  }, 120_000);
62
73
 
63
74
  test("a value outside a built-in's typed config is carried as found, and tsc points at it", () => {
64
- // couchbase uses the filter processor's legacy match syntax and a scrape job's basic_auth,
65
- // neither of which the lexicon's config types cover.
66
- const couchbase = typeErrors({ couchbase: generate(read("upstream", "couchbase.yaml")) });
67
- expect(couchbase).toEqual([
68
- expect.stringMatching(/^couchbase\/processors\.ts: .*'exclude' does not exist/),
69
- expect.stringMatching(/^couchbase\/receivers\.ts: .*'basic_auth' does not exist in type 'PrometheusScrapeConfig'/),
75
+ // The type check is not vacuous: a batch timeout of `true` is neither a duration string nor
76
+ // nanoseconds, and a scrape job stays closed to keys Prometheus does not read.
77
+ const yaml = [
78
+ "receivers:",
79
+ " otlp:",
80
+ " protocols:",
81
+ " grpc: {}",
82
+ " prometheus:",
83
+ " config:",
84
+ " scrape_configs:",
85
+ " - job_name: self",
86
+ " static_configs: [{ targets: [\"localhost:8888\"] }]",
87
+ " basic_auth: { username: u, password_file: /etc/p }",
88
+ " scrape_everything: true",
89
+ "processors:",
90
+ " batch:",
91
+ " timeout: true",
92
+ "exporters:",
93
+ " debug: {}",
94
+ "service:",
95
+ " pipelines:",
96
+ " traces:",
97
+ " receivers: [otlp]",
98
+ " processors: [batch]",
99
+ " exporters: [debug]",
100
+ " metrics:",
101
+ " receivers: [prometheus]",
102
+ " exporters: [debug]",
103
+ "",
104
+ ].join("\n");
105
+ expect(typeErrors({ bad: generate(yaml) })).toEqual([
106
+ expect.stringMatching(/^bad\/processors\.ts: Type 'true' is not assignable to type 'Duration/),
107
+ expect.stringMatching(/^bad\/receivers\.ts: .*'scrape_everything' does not exist in type 'PrometheusScrapeConfig'/),
70
108
  ]);
71
- // The servicegraph test config writes bucket durations as bare integers (nanoseconds); Duration is a string.
72
- const servicegraph = typeErrors({ servicegraph: generate(read("upstream", "servicegraph-nop.yaml")) });
73
- expect(servicegraph).toEqual(Array(5).fill("servicegraph/connectors.ts: Type 'number' is not assignable to type 'string'."));
74
109
  }, 120_000);
75
110
  });
package/src/plugin.ts CHANGED
@@ -11,6 +11,7 @@ import { hover } from "./lsp/hover";
11
11
  import { detectTemplate } from "./detect";
12
12
  import { OtelCollectorParser } from "./import/parser";
13
13
  import { OtelCollectorGenerator } from "./import/generator";
14
+ import { collectorConfigImporter } from "./import/embedded";
14
15
  import { otelSkills } from "./skill-defs";
15
16
  import { BUILTIN_CATALOG } from "./catalog";
16
17
  import { COLLECTOR_PIN } from "./define";
@@ -106,6 +107,10 @@ export const otelPlugin: LexiconPlugin = {
106
107
  return new OtelCollectorGenerator();
107
108
  },
108
109
 
110
+ embeddedImporters() {
111
+ return [collectorConfigImporter];
112
+ },
113
+
109
114
  completionProvider(ctx: CompletionContext) {
110
115
  return completions(ctx);
111
116
  },