Skip to content

[exporter/sematext] Exporter starts without required configuration, fails on trying to send data #39610

Open
@andrzej-stencel

Description

@andrzej-stencel

Component(s)

exporter/sematext

Collector version

v0.124.1

What happened?

Description

The Sematext exporter can be started with no configuration, leading to errors when trying to send data, as it is not possible to send data without an app token and the region.

Steps to Reproduce

  1. Prepare configuration
service:
  pipelines:
    metrics:
      receivers:
        - hostmetrics
      exporters:
        - sematext
receivers:
  hostmetrics:
    scrapers:
      load:
exporters:
  sematext:
  1. Add Sematext exporter to the list of exporters in cmd/otelcontribcol/builder-config.yaml:
  - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/exporter/sematextexporter v0.124.1
  1. Build the collector binary
make install-tools && make genotelcontribcol && make otelcontribcol
  1. Run the built binary with the above config
bin/otelcontribcol_linux_amd64 --config config.yaml

Expected Result

Collector should fail to start, reporting that the region and metrics app token are required.

Actual Result

Collector starts successfully and reports errors when trying to send data:

$ bin/otelcontribcol_linux_amd64 --config config.yaml
2025-04-24T11:00:29.515+0200    info    [email protected]/service.go:199   Setting up own telemetry...
2025-04-24T11:00:29.515+0200    info    builders/builders.go:26 Development component. May change in the future.        {"otelcol.component.id": "sematext", "otelcol.component.kind": "exporter", "otelcol.signal": "metrics"}
2025-04-24T11:00:29.516+0200    info    [email protected]/service.go:266   Starting otelcontribcol...      {"Version": "0.124.1-dev", "NumCPU": 20}
2025-04-24T11:00:29.517+0200    info    extensions/extensions.go:41     Starting extensions...
2025-04-24T11:00:29.517+0200    info    [email protected]/service.go:289   Everything is ready. Begin running and processing data.
2025-04-24T11:00:30.518+0200    error   internal/queue_sender.go:57     Exporting failed. Dropping data.        {"otelcol.component.id": "sematext", "otelcol.component.kind": "exporter", "otelcol.signal": "metrics", "error": "not retryable error: Permanent error: failed to convert OTLP metric to line protocol: failed to write point for gauge: Permanent error: failed to encode point: invalid tag value token=\"\"", "dropped_items": 3}
go.opentelemetry.io/collector/exporter/exporterhelper/internal.NewQueueSender.func1
        go.opentelemetry.io/collector/[email protected]/exporterhelper/internal/queue_sender.go:57
go.opentelemetry.io/collector/exporter/exporterhelper/internal/queuebatch.(*disabledBatcher[...]).Consume
        go.opentelemetry.io/collector/[email protected]/exporterhelper/internal/queuebatch/disabled_batcher.go:22
go.opentelemetry.io/collector/exporter/exporterhelper/internal/queuebatch.(*asyncQueue[...]).Start.func1
        go.opentelemetry.io/collector/[email protected]/exporterhelper/internal/queuebatch/async_queue.go:47

Additional context

The properties region, logs::app_token, metrics::app_token should be marked as required in the component's README, unless I'm missing something? Is any of them not required?

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions