Sending from an OpenTelemetry Collector

Intro and requirements

Many setups employ existing OpenTelemetry collectors. groundcover fully supports ingesting data from existing collectors.

The recommend method is is by exporting the telemetry data from the collector to the BYOC endpoint as described below.

Get your InCloud site address

Find your inCloud site in your installation values.yaml:

global:
  ingress:
    site: {inCloud_Site}

Need help finding your site value? Contact us on Slack.

Create an ingestion key

See how in the ingestion key docs.

Configuring the Pipeline

See below for an example of setting up an exporter for groundcover.

exporters:
  otlphttp/groundcover:
    endpoint: https://{inCloud_Site}
    headers:
      apikey: {INGESTION_KEY}
    compression: gzip
    timeout: 30s
    retry_on_failure:
      enabled: true
      initial_interval: 5s
      max_interval: 30s
      max_elapsed_time: 300s

service:
  pipelines:
    traces:
      exporters: 
        - otlphttp/groundcover
    logs:
      exporters: 
        - otlphttp/groundcover
    metrics:
      exporters: 
        - otlphttp/groundcover

Attribute Enrichment

Using resource attributes

It is possible to enrich specific attributes using resource attributes - read more here.

See below for an example on adding service.name and env via a processor:

processors:
  resource/groundcover:
    attributes:
      service.name: "my-service"
      env_name: "production"

service:
  pipelines:
    traces:
      processors:
        - resource/groundcover
      exporters: 
        - otlphttp/groundcover

Using headers

It is possible to enrich specific attributes using HTTP headers - read more here.

See below for an example on adding source and env via headers:

exporters:
  otlphttp/groundcover:
    endpoint: https://{inCloud_Site}
    headers:
      apikey: {INGESTION_KEY}
      x-groundcover-source: "otel-collector"
      x-groundcover-env-name: "my-env"
    compression: gzip
    timeout: 30s
    retry_on_failure:
      enabled: true
      initial_interval: 5s
      max_interval: 30s
      max_elapsed_time: 300s

service:
  pipelines:
    traces:
      exporters: 
        - otlphttp/groundcover
    logs:
      exporters: 
        - otlphttp/groundcover
    metrics:
      exporters: 
        - otlphttp/groundcover

Sampling

The BYOC endpoint does not perform any type of sampling. Any sampling should be done in the OTEL collector itself prior to exporting the data to groundcover.

Troubleshooting

Common Issues

403 Forbidden / PERMISSION_DENIED

  • Verify your Ingestion Key is valid and not revoked

  • Ensure you're using a Third Party type Ingestion Key

  • Check that the token header is correctly formatted

Connection Refused / Timeout

  • Verify the inCloud endpoint URL

  • Check network connectivity and firewall rules

  • Ensure port 443 is accessible from your environment

Data Not Appearing

  • Check application logs for OTLP exporter errors

  • Verify the service name and resource attributes are set

  • Allow 1-2 minutes for data to appear in groundcover UI

Last updated