Мне нужно использовать преобразование, чтобы изменить описания в метриках на otel-collector. Я запускаю otel-collector с помощью этой команды, чтобы проверить, работает ли моя конфигурация:
docker run --rm -v "$PWD/otel-collector-config.yaml:/otel-collector-config.yaml" \
--network host -p 127.0.0.1:8889:8889 -p 127.0.0.1:55679:55679 \
otel/opentelemetry-collector:0.103.0 --config otel-collector-config.yaml
У меня есть такая конфигурация:
transform:
metric_statements:
- context: metric
statements:
- set(description, "Number of all requests") where name == "undertow_request_count_total"
receivers:
otlp:
protocols:
grpc:
http:
exporters:
prometheus:
endpoint: "0.0.0.0:8889"
debug:
verbosity: detailed
logging:
loglevel: debug
service:
pipelines:
metrics:
receivers: [otlp]
# processors: []
exporters: [prometheus, debug]
Я получаю эту ошибку:
Error: failed to get config: cannot unmarshal the configuration: 1 error(s) decoding:
* '' has invalid keys: transform
2024/06/22 06:41:49 collector server run finished with error: failed to get config: cannot unmarshal the configuration: 1 error(s) decoding:
* '' has invalid keys: transform
Из ошибки я понимаю, что преобразование не должно идти туда, куда я его задал, но не понимаю, куда его еще поместить. Документация по процессору преобразования мне не очень помогает, поскольку все примеры здесь похожи на мои.
Обновление от 26 июня 2024 г.:
Попробовал использовать изменение, предложенное Шивой Пундиром:
processors:
transform:
metric_statements:
- context: metric
statements:
- set(description, "Number of all requests") where name == "undertow_request_count_total"
...
... дал мне эту ошибку:
Error: failed to get config: cannot unmarshal the configuration: 1 error(s) decoding:
* error decoding 'processors': unknown type: "transform" for id: "transform" (valid values: [probabilistic_sampler filter batch memory_limiter attributes resource span])
2024/06/26 10:48:49 collector server run finished with error: failed to get config: cannot unmarshal the configuration: 1 error(s) decoding:
* error decoding 'processors': unknown type: "transform" for id: "transform" (valid values: [probabilistic_sampler filter batch memory_limiter attributes resource span])
Конфигурационный файл неправильный.
Ключ transform
должен находиться в разделе processors
.
processors:
transform:
metric_statements:
- context: metric
statements:
- set(description, "Number of all requests") where name == "undertow_request_count_total"
Я думаю, вы используете otel-collector-contrib (обозначено otel/opentelemetry-collector:0.103.0
). Вместо этого вам следует использовать otel/opentelemetry-collector-contrib:0.103.0
.
В общем, вклад представляет собой расширенный набор всех возможных компонентов. В то время как ядро состоит только из стабильных компонентов.
Процессор transform
недоступен в основном двоичном файле (см. поле с Distributions
- https://github.com/open-telemetry/opentelemetry-collector-contrib/tree/main/processor/transformprocessor#transform-processor)
Попробуй это
docker run --rm -v "$PWD/otel-collector-config.yaml:/otel-collector-config.yaml" \
--network host -p 127.0.0.1:8889:8889 -p 127.0.0.1:55679:55679 \
otel/opentelemetry-collector-contrib:0.103.1 --config otel-collector-config.yaml
Спасибо, но, к сожалению, это не сработало; обновление