@intentius/chant-lexicon-otel 0.97.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.
- package/README.md +5 -0
- package/dist/codegen/docs.d.ts.map +1 -1
- package/dist/components/common.d.ts +7 -2
- package/dist/components/common.d.ts.map +1 -1
- package/dist/components/filtering.d.ts +58 -1
- package/dist/components/filtering.d.ts.map +1 -1
- package/dist/components/processors.d.ts +10 -0
- package/dist/components/processors.d.ts.map +1 -1
- package/dist/components/receivers.d.ts +87 -7
- package/dist/components/receivers.d.ts.map +1 -1
- package/dist/import/embedded.d.ts +12 -0
- package/dist/import/embedded.d.ts.map +1 -0
- package/dist/import/generator.d.ts +39 -0
- package/dist/import/generator.d.ts.map +1 -0
- package/dist/import/parser.d.ts +61 -0
- package/dist/import/parser.d.ts.map +1 -0
- package/dist/integrity.json +4 -4
- package/dist/lint/rules/literal-credential.d.ts.map +1 -1
- package/dist/manifest.json +1 -1
- package/dist/plugin.d.ts.map +1 -1
- package/dist/rules/literal-credential.ts +46 -17
- package/dist/skills/chant-otel.md +11 -0
- package/package.json +2 -2
- package/src/codegen/docs.ts +2 -1
- package/src/components/common.ts +7 -2
- package/src/components/filtering.test.ts +27 -0
- package/src/components/filtering.ts +65 -2
- package/src/components/processors.ts +4 -0
- package/src/components/receivers.ts +88 -4
- package/src/import/embedded.test.ts +56 -0
- package/src/import/embedded.ts +41 -0
- package/src/import/generated-types.e2e.test.ts +110 -0
- package/src/import/generator.test.ts +165 -0
- package/src/import/generator.ts +509 -0
- package/src/import/parser.test.ts +174 -0
- package/src/import/parser.ts +236 -0
- package/src/import/roundtrip.test.ts +365 -0
- package/src/import/testdata/agent-observability-agent.yaml +54 -0
- package/src/import/testdata/agent-observability-gateway.yaml +128 -0
- package/src/import/testdata/fixtures.ts +274 -0
- package/src/import/testdata/gateway.yaml +153 -0
- package/src/import/testdata/upstream/couchbase.yaml +150 -0
- package/src/import/testdata/upstream/fault-tolerant-logs.yaml +27 -0
- package/src/import/testdata/upstream/kubernetes-filelog.yaml +86 -0
- package/src/import/testdata/upstream/loadbalancing-agent.yaml +38 -0
- package/src/import/testdata/upstream/loadbalancing-backend.yaml +27 -0
- package/src/import/testdata/upstream/logline-filter-in.yaml +20 -0
- package/src/import/testdata/upstream/logline-filter-out.yaml +20 -0
- package/src/import/testdata/upstream/secure-tracing.yaml +26 -0
- package/src/import/testdata/upstream/servicegraph-nop.yaml +28 -0
- package/src/lint/rules/literal-credential.ts +46 -17
- package/src/lint/rules/rules.test.ts +16 -0
- package/src/plugin.ts +15 -0
- package/src/skills/chant-otel.md +11 -0
package/README.md
CHANGED
|
@@ -52,6 +52,10 @@ Each connector supports fixed signal pairs (`spanmetrics`: traces to metrics). O
|
|
|
52
52
|
|
|
53
53
|
`defineComponent<Config>()({ kind, type, pin, validate?, endpoints?, connects? })` returns a class that serializes and lints like a built-in. `pin` records the schema source and version the config type follows; it is written as a `# chant:` comment above the emitted config and returned by `collectorTopology()`.
|
|
54
54
|
|
|
55
|
+
## Importing an existing config
|
|
56
|
+
|
|
57
|
+
`chant import otel-collector-config.yaml --output src` turns a collector config into this lexicon's TypeScript: one module per section plus `pipelines.ts`, each component a constant of its built-in class (`otlp/tempo` becomes `const otlpTempo = new OtlpExporter({ name: "tempo", ... })`), each connector one constant listed on both sides of its join. `${env:VAR}` references stay references. A component type chant doesn't ship is declared with `defineComponent` in `custom-components.ts`, config carried as data, pinned to the `# chant:` header's pin when the file has one and to `COLLECTOR_PIN` otherwise. `chant build` on the result gives back the same config; the round-trip tests in `src/import/roundtrip.test.ts` hold every example, a sampling gateway, `genAiPipeline()` output and collector-contrib's example configs to that.
|
|
58
|
+
|
|
55
59
|
## Checks
|
|
56
60
|
|
|
57
61
|
OTEL001 and OTEL002 run on source (id syntax, literal credentials). OTEL101 to OTEL109 and OTEL112 run after a build: undeclared or unused components (a connector must be on both sides), empty pipelines, extension wiring, `memory_limiter` placement, id syntax, each component's own config rules, duplicate ids, missing schema pins, and connector signal pairs.
|
|
@@ -71,4 +75,5 @@ OTEL001 and OTEL002 run on source (id syntax, literal credentials). OTEL101 to O
|
|
|
71
75
|
- `src/validate-config.ts`, `src/lint/`: checks
|
|
72
76
|
- `src/topology.ts`, `src/semconv.ts`: the read surface
|
|
73
77
|
- `src/genai.ts`: the GenAI preset
|
|
78
|
+
- `src/import/`: `chant import` for collector YAML (parser, generator, round-trip tests and fixtures)
|
|
74
79
|
- `examples/`: getting-started, k8s-node-agent, genai-agent, custom-component
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"docs.d.ts","sourceRoot":"","sources":["../../src/codegen/docs.ts"],"names":[],"mappings":"AAAA;;;GAGG;
|
|
1
|
+
{"version":3,"file":"docs.d.ts","sourceRoot":"","sources":["../../src/codegen/docs.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAsEH,wBAAsB,YAAY,CAAC,IAAI,CAAC,EAAE;IAAE,OAAO,CAAC,EAAE,OAAO,CAAA;CAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAuB9E"}
|
|
@@ -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
|
-
/**
|
|
8
|
-
|
|
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":"AAAA;;;;;GAKG;AAEH
|
|
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
|
-
/**
|
|
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;
|
|
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
|
-
/**
|
|
22
|
-
export interface
|
|
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
|
-
|
|
37
|
-
authorization?:
|
|
38
|
-
|
|
39
|
-
|
|
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":"AAAA;;GAEG;AAGH,OAAO,KAAK,EAAE,QAAQ,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAC;AAIpG,MAAM,WAAW,kBAAkB;IACjC,SAAS,CAAC,EAAE;QACV,IAAI,CAAC,EAAE,kBAAkB,GAAG,IAAI,CAAC;QACjC,IAAI,CAAC,EACD,CAAC,kBAAkB,GAAG;YACpB,eAAe,CAAC,EAAE,MAAM,CAAC;YACzB,gBAAgB,CAAC,EAAE,MAAM,CAAC;YAC1B,aAAa,CAAC,EAAE,MAAM,CAAC;SACxB,CAAC,GACF,IAAI,CAAC;KACV,CAAC;CACH;AAED,gFAAgF;AAChF,eAAO,MAAM,YAAY,qEAcvB,CAAC;AAIH,MAAM,WAAW,sBAAsB;IACrC,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACjC;AAED
|
|
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"}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `TemplateIR` -> TypeScript, for `chant import`.
|
|
3
|
+
*
|
|
4
|
+
* Writes the collector the way the lexicon's examples are written: a module
|
|
5
|
+
* per section with one constant per component, typed by its built-in class
|
|
6
|
+
* (`const otlpTempo = new OtlpExporter({ name: "tempo", ... })`), nested
|
|
7
|
+
* settings lifted into consts typed by the component's config type (COR001),
|
|
8
|
+
* at most eight declarables per module (COR009), and an `export { ... }` list
|
|
9
|
+
* at the end of each. `pipelines.ts` declares a `Pipeline` per pipeline that
|
|
10
|
+
* references those constants, and `service.ts` a `Service` when
|
|
11
|
+
* `service.extensions` or `service.telemetry` needs one. A connector is one
|
|
12
|
+
* constant, listed in the exporters of the pipeline that feeds it and the
|
|
13
|
+
* receivers of the pipeline it feeds.
|
|
14
|
+
*
|
|
15
|
+
* A component type chant does not ship gets a `defineComponent` in
|
|
16
|
+
* `custom-components.ts`, with its config carried as data and a comment
|
|
17
|
+
* saying so. Its pin is the one the config's `# chant:` header named, or
|
|
18
|
+
* `COLLECTOR_PIN`.
|
|
19
|
+
*/
|
|
20
|
+
import type { GeneratedFile, TypeScriptGenerator } from "@intentius/chant/import/generator";
|
|
21
|
+
import type { TemplateIR } from "@intentius/chant/import/parser";
|
|
22
|
+
import { type CollectorConfig, type ComponentKind } from "../model.js";
|
|
23
|
+
import { type CollectorResourceMetadata } from "./parser.js";
|
|
24
|
+
/** The class name of the built-in for `kind` + `type`, if chant ships one. */
|
|
25
|
+
export declare function builtinClassName(kind: ComponentKind, type: string): string | undefined;
|
|
26
|
+
/** A value as a TypeScript expression, starting at column `col`, indented by `indent` spaces. */
|
|
27
|
+
export declare function tsLiteral(v: unknown, indent: number, col?: number): string;
|
|
28
|
+
/**
|
|
29
|
+
* Generate the TypeScript declaring one collector config: one module per
|
|
30
|
+
* section (split at eight declarables, as COR009 asks), `pipelines.ts`,
|
|
31
|
+
* `service.ts` when the config needs a Service, and `custom-components.ts`
|
|
32
|
+
* for component types chant does not ship.
|
|
33
|
+
*/
|
|
34
|
+
export declare function generateCollectorFiles(config: CollectorConfig, meta?: Partial<CollectorResourceMetadata>): GeneratedFile[];
|
|
35
|
+
/** The OpenTelemetry Collector TypeScript generator `chant import` runs. */
|
|
36
|
+
export declare class OtelCollectorGenerator implements TypeScriptGenerator {
|
|
37
|
+
generate(ir: TemplateIR): GeneratedFile[];
|
|
38
|
+
}
|
|
39
|
+
//# sourceMappingURL=generator.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"generator.d.ts","sourceRoot":"","sources":["../../src/import/generator.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,mBAAmB,EAAE,MAAM,mCAAmC,CAAC;AAC5F,OAAO,KAAK,EAAc,UAAU,EAAE,MAAM,gCAAgC,CAAC;AAG7E,OAAO,EAML,KAAK,eAAe,EACpB,KAAK,aAAa,EACnB,MAAM,UAAU,CAAC;AAClB,OAAO,EAEL,KAAK,yBAAyB,EAG/B,MAAM,UAAU,CAAC;AAsBlB,8EAA8E;AAC9E,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAEtF;AAsED,iGAAiG;AACjG,wBAAgB,SAAS,CAAC,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,SAAS,GAAG,MAAM,CAmB1E;AAoJD;;;;;GAKG;AACH,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,eAAe,EAAE,IAAI,GAAE,OAAO,CAAC,yBAAyB,CAAM,GAAG,aAAa,EAAE,CA6L9H;AAED,4EAA4E;AAC5E,qBAAa,sBAAuB,YAAW,mBAAmB;IAChE,QAAQ,CAAC,EAAE,EAAE,UAAU,GAAG,aAAa,EAAE;CAQ1C"}
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Collector YAML -> `TemplateIR`, for `chant import`.
|
|
3
|
+
*
|
|
4
|
+
* A collector config is one document whose parts name each other: pipelines
|
|
5
|
+
* list component ids, a connector sits in two pipelines, `service.extensions`
|
|
6
|
+
* lists extension ids. So the IR carries the whole config as one resource of
|
|
7
|
+
* type `OTel::Collector`, and the generator lays out the modules itself, with
|
|
8
|
+
* those names turned into imports of declared entities. (Core splits an IR
|
|
9
|
+
* with more than three resources into one generate() call per category and
|
|
10
|
+
* keeps only the first file of each, which would lose the imports between a
|
|
11
|
+
* pipeline and the components it references.)
|
|
12
|
+
*
|
|
13
|
+
* The config is carried as parsed, with nothing dropped from a component's
|
|
14
|
+
* config. What the lexicon cannot express is named in `warnings`.
|
|
15
|
+
*
|
|
16
|
+
* The `# chant:` lines the serializer writes above a config are read back:
|
|
17
|
+
* a custom component's schema pin becomes the pin of the `defineComponent`
|
|
18
|
+
* the generator writes for it. A config without them imports against
|
|
19
|
+
* `COLLECTOR_PIN`.
|
|
20
|
+
*/
|
|
21
|
+
import type { TemplateIR, TemplateParser } from "@intentius/chant/import/parser";
|
|
22
|
+
import { type SchemaPin } from "../define.js";
|
|
23
|
+
import { type CollectorConfig, type ComponentKind } from "../model.js";
|
|
24
|
+
/** The IR resource type for a whole collector config. */
|
|
25
|
+
export declare const COLLECTOR_RESOURCE_TYPE = "OTel::Collector";
|
|
26
|
+
/** One `# chant: <kind> <id> schema <source>@<version>` header line, read back. */
|
|
27
|
+
export interface HeaderPin {
|
|
28
|
+
kind: ComponentKind;
|
|
29
|
+
id: string;
|
|
30
|
+
pin: SchemaPin;
|
|
31
|
+
}
|
|
32
|
+
/** One `# chant: semconv <namespace> <source>@<version>` header line, read back. */
|
|
33
|
+
export interface HeaderSemconv {
|
|
34
|
+
namespace: string;
|
|
35
|
+
pin: SchemaPin;
|
|
36
|
+
}
|
|
37
|
+
/** What the parser read from a collector YAML file. */
|
|
38
|
+
export interface ParsedCollector {
|
|
39
|
+
config: CollectorConfig;
|
|
40
|
+
pins: HeaderPin[];
|
|
41
|
+
semconv: HeaderSemconv[];
|
|
42
|
+
warnings: string[];
|
|
43
|
+
}
|
|
44
|
+
/** `properties` of the `OTel::Collector` resource. */
|
|
45
|
+
export interface CollectorResourceProperties {
|
|
46
|
+
config: CollectorConfig;
|
|
47
|
+
}
|
|
48
|
+
/** `metadata` of the `OTel::Collector` resource. */
|
|
49
|
+
export interface CollectorResourceMetadata {
|
|
50
|
+
pins: HeaderPin[];
|
|
51
|
+
semconv: HeaderSemconv[];
|
|
52
|
+
}
|
|
53
|
+
/** Parse collector YAML into the plain config model, the header pins and what cannot be carried. */
|
|
54
|
+
export declare function parseCollectorYaml(content: string): ParsedCollector;
|
|
55
|
+
/** Which kind a section's components are. */
|
|
56
|
+
export declare const KIND_OF_SECTION: Record<string, ComponentKind>;
|
|
57
|
+
/** The OpenTelemetry Collector config parser `chant import` runs. */
|
|
58
|
+
export declare class OtelCollectorParser implements TemplateParser {
|
|
59
|
+
parse(content: string): TemplateIR;
|
|
60
|
+
}
|
|
61
|
+
//# sourceMappingURL=parser.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"parser.d.ts","sourceRoot":"","sources":["../../src/import/parser.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAGH,OAAO,KAAK,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAC;AACjF,OAAO,EAAqB,KAAK,SAAS,EAAE,MAAM,WAAW,CAAC;AAC9D,OAAO,EAML,KAAK,eAAe,EACpB,KAAK,aAAa,EACnB,MAAM,UAAU,CAAC;AAElB,yDAAyD;AACzD,eAAO,MAAM,uBAAuB,oBAAoB,CAAC;AAEzD,mFAAmF;AACnF,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,aAAa,CAAC;IACpB,EAAE,EAAE,MAAM,CAAC;IACX,GAAG,EAAE,SAAS,CAAC;CAChB;AAED,oFAAoF;AACpF,MAAM,WAAW,aAAa;IAC5B,SAAS,EAAE,MAAM,CAAC;IAClB,GAAG,EAAE,SAAS,CAAC;CAChB;AAED,uDAAuD;AACvD,MAAM,WAAW,eAAe;IAC9B,MAAM,EAAE,eAAe,CAAC;IACxB,IAAI,EAAE,SAAS,EAAE,CAAC;IAClB,OAAO,EAAE,aAAa,EAAE,CAAC;IACzB,QAAQ,EAAE,MAAM,EAAE,CAAC;CACpB;AAED,sDAAsD;AACtD,MAAM,WAAW,2BAA2B;IAC1C,MAAM,EAAE,eAAe,CAAC;CACzB;AAED,oDAAoD;AACpD,MAAM,WAAW,yBAAyB;IACxC,IAAI,EAAE,SAAS,EAAE,CAAC;IAClB,OAAO,EAAE,aAAa,EAAE,CAAC;CAC1B;AAoDD,oGAAoG;AACpG,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,MAAM,GAAG,eAAe,CAyFnE;AAED,6CAA6C;AAC7C,eAAO,MAAM,eAAe,EAAE,MAAM,CAAC,MAAM,EAAE,aAAa,CAEzD,CAAC;AAEF,qEAAqE;AACrE,qBAAa,mBAAoB,YAAW,cAAc;IACxD,KAAK,CAAC,OAAO,EAAE,MAAM,GAAG,UAAU;CAiBnC"}
|
package/dist/integrity.json
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
{
|
|
2
2
|
"algorithm": "sha256",
|
|
3
3
|
"artifacts": {
|
|
4
|
-
"manifest.json": "
|
|
4
|
+
"manifest.json": "13f551fb075d89a09dc639e1a38685b93d008b16843161c171abad21403b31ee",
|
|
5
5
|
"meta.json": "664490c2bee6c839f22994b789adc4708b01a37195f9c193dfb3c974959c5d74",
|
|
6
6
|
"types/index.d.ts": "a1070fd1cb3e8d8a9002fc5a75a80b3bdda02965be351e8aed2dbc2f63d36e3c",
|
|
7
7
|
"rules/component-id-syntax.ts": "95f507614d2626159140d906bce9d086e8ecba18ede22f5ddfbda13ac1c08169",
|
|
8
|
-
"rules/literal-credential.ts": "
|
|
8
|
+
"rules/literal-credential.ts": "48a235a772476bd56cdaaae3f6e90f8a9b2675317be6dcb48c89e54d2f7a5708",
|
|
9
9
|
"rules/otel-ast.ts": "cf286102f778bd010d130ad8de6adc279de517fffffcd49d7cfb3c419b4bec66",
|
|
10
10
|
"rules/otel-helpers.ts": "22f5ed00f5cf33638558eb4363c7deeeefa2cdc3e666404f5235caf471fb1466",
|
|
11
11
|
"rules/otel101.ts": "9a9d5f79403fb07e78752f904741ab4cec8c0f00975b44fe0b6eace63fda4c13",
|
|
@@ -18,9 +18,9 @@
|
|
|
18
18
|
"rules/otel108.ts": "5eddca667b3ec563a1a7bc745139738d438c4307b4861b999a4d8cff975856b6",
|
|
19
19
|
"rules/otel109.ts": "db025b5f09cc8c5199b420fdfd6e4bae0dd5abd1860903d8c9b4d625162a32b9",
|
|
20
20
|
"rules/otel112.ts": "0a6d9a7d6ba281f3b011dde18646f7c15280dcb8cfeddaa6d20c6080a2c92cb0",
|
|
21
|
-
"skills/chant-otel.md": "
|
|
21
|
+
"skills/chant-otel.md": "f77c11e59c9ee782525fd28b1450397754762c045f917735b7d2697a4ee608b5",
|
|
22
22
|
"skills/chant-otel-custom-components.md": "82e53bb482281f79b428e66fb80a1c194ead74a1a34a88bbebb11c6ad5493258",
|
|
23
23
|
"skills/chant-otel-platforms.md": "c90836952dc5c88d668b890152a5063bdb656bce73fc7fa3233a3ea58ad85686"
|
|
24
24
|
},
|
|
25
|
-
"composite": "
|
|
25
|
+
"composite": "07ef419a3277d5576c0a8577dd09d7950af1d36a554e8df2cf26290dee9ba135"
|
|
26
26
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"literal-credential.d.ts","sourceRoot":"","sources":["../../../src/lint/rules/literal-credential.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,QAAQ,EAA+B,MAAM,4BAA4B,CAAC;AAMxF;;;;;;;;;GASG;AACH,eAAO,MAAM,qBAAqB,EAAE,
|
|
1
|
+
{"version":3,"file":"literal-credential.d.ts","sourceRoot":"","sources":["../../../src/lint/rules/literal-credential.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,QAAQ,EAA+B,MAAM,4BAA4B,CAAC;AAMxF;;;;;;;;;GASG;AACH,eAAO,MAAM,qBAAqB,EAAE,QAyEnC,CAAC"}
|
package/dist/manifest.json
CHANGED
package/dist/plugin.d.ts.map
CHANGED
|
@@ -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;
|
|
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"}
|
|
@@ -25,25 +25,54 @@ export const literalCredentialRule: LintRule = {
|
|
|
25
25
|
const diagnostics: LintDiagnostic[] = [];
|
|
26
26
|
const source = context.sourceFile;
|
|
27
27
|
|
|
28
|
+
// `const x = { ... }` (or `[...]`, or a string) anywhere in the file, so a
|
|
29
|
+
// config value lifted out of the constructor into a named const, the way
|
|
30
|
+
// COR001 asks, is scanned where it is used.
|
|
31
|
+
const consts = new Map<string, ts.Expression>();
|
|
32
|
+
const collect = (node: ts.Node) => {
|
|
33
|
+
if (ts.isVariableDeclarationList(node) && node.flags & ts.NodeFlags.Const) {
|
|
34
|
+
for (const d of node.declarations) {
|
|
35
|
+
if (ts.isIdentifier(d.name) && d.initializer) consts.set(d.name.text, d.initializer);
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
ts.forEachChild(node, collect);
|
|
39
|
+
};
|
|
40
|
+
collect(source);
|
|
41
|
+
|
|
42
|
+
const flag = (key: string, node: ts.Node) =>
|
|
43
|
+
diagnostics.push({
|
|
44
|
+
ruleId: "OTEL002",
|
|
45
|
+
severity: "error",
|
|
46
|
+
message: `\`${key}\` is a literal credential; write "\${env:NAME}" (or "\${file:/path}") and let the collector read it at start-up`,
|
|
47
|
+
file: context.filePath,
|
|
48
|
+
...position(source, node),
|
|
49
|
+
});
|
|
50
|
+
|
|
51
|
+
const scanned = new Set<ts.Node>();
|
|
52
|
+
const scanValue = (key: string | undefined, value: ts.Expression) => {
|
|
53
|
+
let init: ts.Expression = value;
|
|
54
|
+
if (ts.isIdentifier(init)) {
|
|
55
|
+
const resolved = consts.get(init.text);
|
|
56
|
+
if (!resolved) return;
|
|
57
|
+
init = resolved;
|
|
58
|
+
}
|
|
59
|
+
if (ts.isObjectLiteralExpression(init) || ts.isArrayLiteralExpression(init)) {
|
|
60
|
+
if (scanned.has(init)) return;
|
|
61
|
+
scanned.add(init);
|
|
62
|
+
if (ts.isObjectLiteralExpression(init)) scan(init);
|
|
63
|
+
else for (const el of init.elements) scanValue(undefined, el as ts.Expression);
|
|
64
|
+
return;
|
|
65
|
+
}
|
|
66
|
+
if (!key || !SECRET_KEY.test(key) || /_file$/i.test(key)) return;
|
|
67
|
+
const text = literalText(init);
|
|
68
|
+
if (text === undefined || text === "" || text.includes("${")) return;
|
|
69
|
+
flag(key, value);
|
|
70
|
+
};
|
|
71
|
+
|
|
28
72
|
const scan = (obj: ts.ObjectLiteralExpression) => {
|
|
29
73
|
for (const prop of obj.properties) {
|
|
30
|
-
if (
|
|
31
|
-
|
|
32
|
-
const init = prop.initializer;
|
|
33
|
-
if (ts.isObjectLiteralExpression(init)) {
|
|
34
|
-
scan(init);
|
|
35
|
-
continue;
|
|
36
|
-
}
|
|
37
|
-
if (!key || !SECRET_KEY.test(key) || /_file$/i.test(key)) continue;
|
|
38
|
-
const text = literalText(init);
|
|
39
|
-
if (text === undefined || text === "" || text.includes("${")) continue;
|
|
40
|
-
diagnostics.push({
|
|
41
|
-
ruleId: "OTEL002",
|
|
42
|
-
severity: "error",
|
|
43
|
-
message: `\`${key}\` is a literal credential; write "\${env:NAME}" (or "\${file:/path}") and let the collector read it at start-up`,
|
|
44
|
-
file: context.filePath,
|
|
45
|
-
...position(source, init),
|
|
46
|
-
});
|
|
74
|
+
if (ts.isShorthandPropertyAssignment(prop)) scanValue(prop.name.text, prop.name);
|
|
75
|
+
else if (ts.isPropertyAssignment(prop)) scanValue(propertyName(prop), prop.initializer);
|
|
47
76
|
}
|
|
48
77
|
};
|
|
49
78
|
|
|
@@ -78,6 +78,17 @@ It deletes prompt, completion, system-instruction and tool-call content from spa
|
|
|
78
78
|
- Every pipeline needs at least one receiver and one exporter (OTEL102). A declared component no pipeline uses is a warning (OTEL103).
|
|
79
79
|
- Declared extensions are enabled in declaration order unless a `Service` lists `extensions` itself.
|
|
80
80
|
|
|
81
|
+
## Starting from an existing config
|
|
82
|
+
|
|
83
|
+
When the user already has a collector config file, import it rather than retyping it:
|
|
84
|
+
|
|
85
|
+
```bash
|
|
86
|
+
chant import otel-collector-config.yaml --output src
|
|
87
|
+
chant build src --lexicon otel -o collector.yaml # the same config back
|
|
88
|
+
```
|
|
89
|
+
|
|
90
|
+
The importer writes `receivers.ts`, `processors.ts`, `exporters.ts`, `connectors.ts`, `extensions.ts`, `pipelines.ts`, and `service.ts` when extensions or telemetry need a `Service`. A component type with no built-in class lands in `custom-components.ts` as a `defineComponent` whose config is untyped data; offer to give it a config interface. Settings outside a built-in's config type still import and build, but `tsc` flags them. Read the warnings `chant import` prints: they name anything the lexicon has no place for.
|
|
91
|
+
|
|
81
92
|
## Reading the result
|
|
82
93
|
|
|
83
94
|
`collectorTopologyOf(entities)` returns the pipelines, each component's endpoints and schema pin, for each exporter the signals it carries, the connector `edges` between pipelines, and under `semconv` the semantic-conventions version (`GENAI_SEMCONV_PIN`) the config's `gen_ai.` keys follow, as plain data.
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@intentius/chant-lexicon-otel",
|
|
3
|
-
"version": "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.
|
|
71
|
+
"@intentius/chant": "^0.99.0",
|
|
72
72
|
"typescript": "^5.9.3"
|
|
73
73
|
}
|
|
74
74
|
}
|