otel-collector

module
v1.3.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jul 30, 2026 License: AGPL-3.0

README

otel-collector

Hanzo O11y Otel Collector

The Hanzo distribution of the OpenTelemetry Collector. Ingests traces / metrics / logs over ZAP-native (zap-proto/http, :4319) plus OTLP (:4317/:4318) and writes to the one hanzoai/datastore (ClickHouse). Adds receiver/zapreceiver

  • exporter/zapexporter over upstream.

CI/CD — canonical pattern (one and only one way)

Build/test/deploy is driven by a single root hanzo.yml + a ~7-line .github/workflows/cicd.yml that imports the reusable hanzoai/ci workflow:

# .github/workflows/cicd.yml
jobs:
  cicd:
    uses: hanzoai/ci/.github/workflows/build.yml@main
    secrets: inherit

All build/test/deploy logic lives once in hanzoai/ci. It reads hanzo.yml (images: / test: / deploy: / kms:), builds + pushes each image, runs the tests, and rolls the deployment. The build runs on our self-hosted arc pool (hanzo-build-linux-amd64) — zero GitHub-hosted minutes; GitHub only orchestrates, our infra does the work. GHCR push uses the automatic workflow token; KMS (kms.hanzo.ai) supplies only the deploy KUBECONFIG.

This repo builds two images from self-building multi-stage Dockerfiles (so no CI pre-build step is needed):

image dockerfile tags
ghcr.io/hanzoai/otel-collector cmd/o11yotelcollector/Dockerfile.selfbuild :zap-native-latest, :sha-<short>-amd64-zap-native
ghcr.io/hanzoai/o11y-schema-migrator cmd/o11yschemamigrator/Dockerfile.selfbuild :latest, :sha-<short>-amd64

This is the going-forward pattern for all native-PaaS repos. To onboard a new repo: add a root hanzo.yml and the cicd.yml above — nothing else. Do not add per-repo build logic, GitHub-hosted runners, or the legacy hanzoai/.github docker-build.yml / o11y/primus.workflows reusables (both removed here).

Directories

Path Synopsis
cmd
config
connectors
exporter
jsontypeexporter
Package jsontypeexporter exports telemetry data to JSON files.
Package jsontypeexporter exports telemetry data to JSON files.
o11ykafkaexporter
package o11ykafkaexporter exports trace data to Kafka.
package o11ykafkaexporter exports trace data to Kafka.
o11ykafkaexporter/internal/awsmsk
Package msk implements the required IAM auth used by AWS' managed Kafka platform to be used with the Surama kafka producer.
Package msk implements the required IAM auth used by AWS' managed Kafka platform to be used with the Surama kafka producer.
zapexporter
Package zapexporter ships OpenTelemetry signals (traces, logs, metrics) to a collector's ZAP-native OTLP receiver (receiver/zapreceiver) over Hanzo's ZAP transport (github.com/zap-proto/http) — never OTLP-over-HTTP (:4318) or OTLP-over-gRPC (:4317).
Package zapexporter ships OpenTelemetry signals (traces, logs, metrics) to a collector's ZAP-native OTLP receiver (receiver/zapreceiver) over Hanzo's ZAP transport (github.com/zap-proto/http) — never OTLP-over-HTTP (:4318) or OTLP-over-gRPC (:4317).
extension
healthcheckextension
Package healthcheckextension implements an extension that enables an HTTP endpoint that can be used to check the overall health and status of the service.
Package healthcheckextension implements an extension that enables an HTTP endpoint that can be used to check the overall health and status of the service.
internal
kafka/awsmsk
Package msk implements the required IAM auth used by AWS' managed Kafka platform to be used with the Surama kafka producer.
Package msk implements the required IAM auth used by AWS' managed Kafka platform to be used with the Surama kafka producer.
sharedcomponent
Package sharedcomponent exposes util functionality for receivers and exporters that need to share state between different signal types instances such as net.Listener or os.File.
Package sharedcomponent exposes util functionality for receivers and exporters that need to share state between different signal types instances such as net.Listener or os.File.
pkg
processor
o11ylogspipelineprocessor
Brought in as is from logstransform processor in opentelemetry-collector-contrib
Brought in as is from logstransform processor in opentelemetry-collector-contrib
o11ylogspipelineprocessor/stanza/adapter
Register copies of stanza operators dedicated to o11y logs pipelines
Register copies of stanza operators dedicated to o11y logs pipelines
o11ylogspipelineprocessor/stanza/entry
brought in as-is from opentelemetry-collector-contrib with changes to Get() to enable reading fields inside JSON body directly
brought in as-is from opentelemetry-collector-contrib with changes to Get() to enable reading fields inside JSON body directly
o11ylogspipelineprocessor/stanza/operator/helper
brought in as is from "github.com/open-telemetry/opentelemetry-collector-contrib/pkg/stanza/operator/helper" with minor changes to use o11ystanzaentry.Field instead of entry.Field
brought in as is from "github.com/open-telemetry/opentelemetry-collector-contrib/pkg/stanza/operator/helper" with minor changes to use o11ystanzaentry.Field instead of entry.Field
o11ylogspipelineprocessor/stanza/operator/operators/remove
Brought in as is from opentelemetry-collector-contrib
Brought in as is from opentelemetry-collector-contrib
o11ylogspipelineprocessor/stanza/operator/operatortest
Brought in as is from opentelemetry-collector-contrib with anyOpConfig implementation updated to use operator config in logspipelineprocessor
Brought in as is from opentelemetry-collector-contrib with anyOpConfig implementation updated to use operator config in logspipelineprocessor
o11ytailsampler
package o11ytailsampler contains the logic to execute telemetry transform based on the OpenTelemetry Transformation Language.
package o11ytailsampler contains the logic to execute telemetry transform based on the OpenTelemetry Transformation Language.
o11ytailsampler/internal/idbatcher
Package idbatcher defines a pipeline of fixed size in which the elements are batches of ids.
Package idbatcher defines a pipeline of fixed size in which the elements are batches of ids.
o11ytailsampler/internal/sampling
Package sampling contains the interfaces and data types used to implement the various sampling policies.
Package sampling contains the interfaces and data types used to implement the various sampling policies.
o11ytransformprocessor
package o11ytransformprocessor contains the logic to execute telemetry transform based on the OpenTelemetry Transformation Language.
package o11ytransformprocessor contains the logic to execute telemetry transform based on the OpenTelemetry Transformation Language.
receiver
o11ykafkareceiver
Package kafkareceiver receives traces from Kafka.
Package kafkareceiver receives traces from Kafka.
zapreceiver
Package zapreceiver ingests OpenTelemetry signals (traces, logs, metrics) carried over Hanzo's native ZAP transport (github.com/zap-proto/http) rather than OTLP-over-HTTP (:4318) or OTLP-over-gRPC (:4317).
Package zapreceiver ingests OpenTelemetry signals (traces, logs, metrics) carried over Hanzo's native ZAP transport (github.com/zap-proto/http) rather than OTLP-over-HTTP (:4318) or OTLP-over-gRPC (:4317).

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL