{"id":34745477,"url":"https://github.com/telemetryflow/telemetryflow-collector","last_synced_at":"2026-05-13T17:01:23.512Z","repository":{"id":329571478,"uuid":"1118319447","full_name":"telemetryflow/telemetryflow-collector","owner":"telemetryflow","description":"TelemetryFlow Collector (OTEL Collector)","archived":false,"fork":false,"pushed_at":"2026-03-04T06:32:20.000Z","size":1107,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-03-04T13:08:08.297Z","etag":null,"topics":["devopscorner","opentelemetry","opentelemetry-collector","opentelemetry-go","otel","otel-collector","telemetryflow"],"latest_commit_sha":null,"homepage":"https://telemetryflow.id","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/telemetryflow.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":"SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-12-17T15:21:57.000Z","updated_at":"2026-03-04T06:32:17.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/telemetryflow/telemetryflow-collector","commit_stats":null,"previous_names":["telemetryflow/telemetryflow-collector"],"tags_count":19,"template":false,"template_full_name":null,"purl":"pkg:github/telemetryflow/telemetryflow-collector","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/telemetryflow%2Ftelemetryflow-collector","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/telemetryflow%2Ftelemetryflow-collector/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/telemetryflow%2Ftelemetryflow-collector/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/telemetryflow%2Ftelemetryflow-collector/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/telemetryflow","download_url":"https://codeload.github.com/telemetryflow/telemetryflow-collector/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/telemetryflow%2Ftelemetryflow-collector/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":30246884,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-08T05:41:50.788Z","status":"ssl_error","status_checked_at":"2026-03-08T05:41:39.075Z","response_time":56,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["devopscorner","opentelemetry","opentelemetry-collector","opentelemetry-go","otel","otel-collector","telemetryflow"],"created_at":"2025-12-25T04:31:08.826Z","updated_at":"2026-05-13T17:01:23.506Z","avatar_url":"https://github.com/telemetryflow.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cdiv align=\"center\"\u003e\n  \u003cpicture\u003e\n    \u003csource media=\"(prefers-color-scheme: dark)\" srcset=\"https://github.com/telemetryflow/.github/raw/main/docs/assets/tfo-logo-collector-dark.svg\"\u003e\n    \u003csource media=\"(prefers-color-scheme: light)\" srcset=\"https://github.com/telemetryflow/.github/raw/main/docs/assets/tfo-logo-collector-light.svg\"\u003e\n    \u003cimg src=\"https://github.com/telemetryflow/.github/raw/main/docs/assets/tfo-logo-collector-light.svg\" alt=\"TelemetryFlow Logo\" width=\"80%\"\u003e\n  \u003c/picture\u003e\n\n  \u003ch3\u003eTelemetryFlow Collector (OCB Native)\u003c/h3\u003e\n\n[![Version](https://img.shields.io/badge/Version-1.1.9-orange.svg)](CHANGELOG.md)\n[![License](https://img.shields.io/badge/License-Apache%202.0-blue.svg)](https://opensource.org/licenses/Apache-2.0)\n[![Go Version](https://img.shields.io/badge/Go-1.26+-00ADD8?logo=go)](https://golang.org/)\n[![OTEL](https://img.shields.io/badge/OpenTelemetry-0.147.0-blueviolet)](https://opentelemetry.io/)\n[![OpenTelemetry](https://img.shields.io/badge/OTLP-100%25%20Compliant-success?logo=opentelemetry)](https://opentelemetry.io/)\n\n\u003c/div\u003e\n\n---\n\nEnterprise-grade OpenTelemetry Collector distribution for the **TelemetryFlow Platform**. Built 100% natively with OpenTelemetry Collector Builder (OCB), featuring custom TFO components for platform-specific authentication and v1/v2 endpoint support.\n\n## Features\n\n- **100% OCB Native**: Built with OpenTelemetry Collector Builder v0.147.0\n- **TFO Custom Components**: tfootlp receiver, tfo exporter, tfoauth/tfoidentity extensions\n- **Dual Endpoint Support**: v1 (open) and v2 (authenticated) on same port\n- **Multi-Signal Support**: Metrics, logs, and traces\n- **Rich Receivers**: OTLP, Prometheus, Host Metrics, File Logs, Kafka, Kubernetes\n- **Powerful Processors**: Batch, Filter, Transform, Resource Detection, K8s Attributes\n- **Flexible Exporters**: OTLP, Prometheus, TFO Platform, Loki, Elasticsearch\n- **Enterprise Ready**: Health checks, metrics, profiling endpoints\n\n## Architecture\n\n```mermaid\nflowchart TB\n    subgraph Clients[\"Telemetry Sources\"]\n        APP1[\"Application 1\u003cbr/\u003e(OTEL SDK)\"]\n        APP2[\"Application 2\u003cbr/\u003e(OTEL SDK)\"]\n        APP3[\"TFO Platform\u003cbr/\u003eClient\"]\n    end\n\n    subgraph TFO[\"TelemetryFlow Collector (OCB Native)\"]\n        subgraph Receivers[\"Receivers\"]\n            TFOOTLP[\"TFO OTLP Receiver\u003cbr/\u003e:4318 (v1 + v2)\"]\n            OTLP_GRPC[\"OTLP gRPC\u003cbr/\u003e:4317\"]\n        end\n\n        subgraph Extensions[\"TFO Extensions\"]\n            TFOAUTH[\"tfoauth\u003cbr/\u003e(API Key Mgmt)\"]\n            TFOIDENT[\"tfoidentity\u003cbr/\u003e(Collector ID)\"]\n        end\n\n        subgraph Pipeline[\"Pipeline\"]\n            BATCH[\"Batch\u003cbr/\u003eProcessor\"]\n            MEMLIM[\"Memory\u003cbr/\u003eLimiter\"]\n            RESOURCE[\"Resource\u003cbr/\u003eProcessor\"]\n        end\n\n        subgraph Connectors[\"Connectors\"]\n            SPANMET[\"SpanMetrics\u003cbr/\u003e(Exemplars)\"]\n            SVCGRAPH[\"ServiceGraph\"]\n        end\n\n        subgraph Exporters[\"Exporters\"]\n            DEBUG[\"Debug\"]\n            PROM_EXP[\"Prometheus\u003cbr/\u003e:8889\"]\n            TFO_EXP[\"TFO Exporter\u003cbr/\u003e(Auto Auth)\"]\n        end\n    end\n\n    subgraph Backends[\"Backends\"]\n        PROMETHEUS[\"Prometheus\u003cbr/\u003eMetrics\"]\n        TFO_BACKEND[\"TelemetryFlow\u003cbr/\u003ePlatform\"]\n    end\n\n    APP1 --\u003e|\"v1 (no auth)\"| TFOOTLP\n    APP2 --\u003e|\"gRPC\"| OTLP_GRPC\n    APP3 --\u003e|\"v2 (auth)\"| TFOOTLP\n\n    TFOOTLP --\u003e MEMLIM\n    OTLP_GRPC --\u003e MEMLIM\n\n    MEMLIM --\u003e BATCH\n    BATCH --\u003e RESOURCE\n    RESOURCE --\u003e SPANMET\n    RESOURCE --\u003e SVCGRAPH\n    RESOURCE --\u003e DEBUG\n    RESOURCE --\u003e PROM_EXP\n    RESOURCE --\u003e TFO_EXP\n\n    SPANMET --\u003e PROM_EXP\n    SVCGRAPH --\u003e PROM_EXP\n\n    TFO_EXP --\u003e TFO_BACKEND\n    PROM_EXP --\u003e PROMETHEUS\n```\n\n## OTLP HTTP Endpoints\n\nTelemetryFlow Collector supports **dual v1/v2 endpoints on the same port (4318)**:\n\n| Version | Endpoint                                | Auth Required | Description                        |\n| ------- | --------------------------------------- | ------------- | ---------------------------------- |\n| **v1**  | `/v1/traces`, `/v1/metrics`, `/v1/logs` | No            | Community/Open - OTEL standard     |\n| **v2**  | `/v2/traces`, `/v2/metrics`, `/v2/logs` | Yes           | TFO Platform - requires `tfk_` key |\n\n### v1 Endpoints (Community/Open)\n\n```bash\n# No authentication required\ncurl -X POST http://localhost:4318/v1/traces \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"resourceSpans\": [...]}'\n```\n\n### v2 Endpoints (TFO Platform)\n\n```bash\n# Requires TFO authentication headers\ncurl -X POST http://localhost:4318/v2/traces \\\n  -H \"Content-Type: application/json\" \\\n  -H \"X-TelemetryFlow-Key-ID: tfk_your_key_id\" \\\n  -H \"X-TelemetryFlow-Key-Secret: tfs_your_secret\" \\\n  -d '{\"resourceSpans\": [...]}'\n```\n\n## Quick Start\n\n### Prerequisites\n\n- Go 1.25 or later\n- OpenTelemetry Collector Builder (OCB) v0.147.0\n\n### Build \u0026 Run\n\n```bash\n# Clone the repository\ngit clone https://github.com/telemetryflow/telemetryflow-collector.git\ncd telemetryflow-collector\n\n# Build with OCB\nmake build\n\n# Run with TFO config (v1 + v2 endpoints)\n./build/tfo-collector --config configs/tfo-collector.yaml\n# Or use short flag\n./build/tfo-collector -c configs/tfo-collector.yaml\n\n# Or run with standard OTEL config (v1 only)\n./build/tfo-collector --config configs/otel-collector.yaml\n```\n\n### Docker\n\n```bash\n# Copy environment template\ncp .env.example .env\n\n# Edit with your TFO API credentials (for v2 endpoints)\nvim .env\n\n# Build and run\ndocker-compose up -d --build\n\n# View logs\ndocker-compose logs -f tfo-collector\n```\n\n## Configuration Files\n\n| File                                  | Purpose                                      | v2 Auth | TFO Exporter |\n| ------------------------------------- | -------------------------------------------- | ------- | ------------ |\n| `configs/otel-collector.yaml`         | **Default community config** - standard OTEL | No      | No           |\n| `configs/otel-collector-minimal.yaml` | Minimal config for quick start               | No      | No           |\n| `configs/tfo-collector.yaml`          | TFO config with v1/v2 endpoints              | v2 only | No           |\n| `configs/tfo-collector-unified.yaml`  | Full TFO Platform config                     | v2 only | Yes          |\n\n### Standard OTEL Config (No Auth)\n\n```yaml\n# configs/otel-collector.yaml\nreceivers:\n  otlp:\n    protocols:\n      grpc:\n        endpoint: \"0.0.0.0:4317\"\n      http:\n        endpoint: \"0.0.0.0:4318\"\n\nprocessors:\n  batch:\n    timeout: 200ms\n\nexporters:\n  debug:\n    verbosity: detailed\n\nservice:\n  pipelines:\n    traces:\n      receivers: [otlp]\n      processors: [batch]\n      exporters: [debug]\n```\n\n### TFO Config (v1/v2 Endpoints)\n\n```yaml\n# configs/tfo-collector.yaml\nextensions:\n  tfoauth:\n    api_key_id: \"${env:TELEMETRYFLOW_API_KEY_ID}\"\n    api_key_secret: \"${env:TELEMETRYFLOW_API_KEY_SECRET}\"\n  tfoidentity:\n    id: \"${env:TELEMETRYFLOW_COLLECTOR_ID}\"\n    name: \"TelemetryFlow Collector\"\n\nreceivers:\n  tfootlp:\n    protocols:\n      grpc:\n        endpoint: \"0.0.0.0:4317\"\n      http:\n        endpoint: \"0.0.0.0:4318\"\n    enable_v2_endpoints: true\n    v2_auth:\n      required: true\n\nservice:\n  extensions: [tfoauth, tfoidentity]\n  pipelines:\n    traces:\n      receivers: [tfootlp]\n      processors: [batch]\n      exporters: [debug]\n```\n\n## TFO Custom Components\n\n| Component     | Type      | Purpose                                    |\n| ------------- | --------- | ------------------------------------------ |\n| `tfootlp`     | Receiver  | OTLP receiver with v1/v2 endpoint support  |\n| `tfo`         | Exporter  | Auto-injects TFO auth headers              |\n| `tfoauth`     | Extension | TFO API key management                     |\n| `tfoidentity` | Extension | Collector identity and resource enrichment |\n\n## Environment Variables\n\n| Variable                       | Description            | Example                        |\n| ------------------------------ | ---------------------- | ------------------------------ |\n| `TELEMETRYFLOW_API_KEY_ID`     | TFO API Key ID         | `tfk_prod_key_001`             |\n| `TELEMETRYFLOW_API_KEY_SECRET` | TFO API Key Secret     | `tfs_xxxxx`                    |\n| `TELEMETRYFLOW_COLLECTOR_ID`   | Unique collector ID    | `collector-prod-01`            |\n| `TELEMETRYFLOW_COLLECTOR_NAME` | Human-readable name    | `Production Collector`         |\n| `TELEMETRYFLOW_ENVIRONMENT`    | Deployment environment | `production`                   |\n| `TELEMETRYFLOW_ENDPOINT`       | TFO Platform endpoint  | `https://api.telemetryflow.id` |\n\n## Exposed Ports\n\n| Port  | Protocol | Description                  |\n| ----- | -------- | ---------------------------- |\n| 4317  | gRPC     | OTLP gRPC receiver           |\n| 4318  | HTTP     | OTLP HTTP receiver (v1 + v2) |\n| 8888  | HTTP     | Prometheus metrics (self)    |\n| 8889  | HTTP     | Prometheus exporter          |\n| 13133 | HTTP     | Health check                 |\n| 55679 | HTTP     | zPages                       |\n| 1777  | HTTP     | pprof                        |\n\n## CLI Usage\n\n### Command Line Flags\n\n| Flag              | Short | Description                   |\n| ----------------- | ----- | ----------------------------- |\n| `--config`        | `-c`  | Configuration file path       |\n| `--set`           | `-s`  | Set component config property |\n| `--feature-gates` | `-f`  | Feature gate identifiers      |\n| `--help`          | `-h`  | Show help information         |\n| `--version`       | `-v`  | Show version information      |\n\n### Usage Examples\n\n```bash\n# Show help (displays TFO banner)\ntfo-collector\ntfo-collector --help\ntfo-collector -h\n\n# Start with config file\ntfo-collector --config configs/tfo-collector.yaml\ntfo-collector -c configs/tfo-collector.yaml\n\n# Set config properties\ntfo-collector -c config.yaml --set processors.batch.timeout=2s\ntfo-collector -c config.yaml -s processors.batch.timeout=2s\n\n# Enable feature gates\ntfo-collector -c config.yaml --feature-gates gate1,gate2\ntfo-collector -c config.yaml -f gate1,gate2\n\n# Show version\ntfo-collector --version\ntfo-collector -v\n```\n\n## Project Structure\n\n```text\ntfo-collector/\n├── cmd/tfo-collector/               # OCB-generated main.go\n├── components/                      # TFO Custom Components\n│   ├── tfootlpreceiver/             # TFO OTLP Receiver (v1/v2)\n│   ├── tfoexporter/                 # TFO Platform Exporter\n│   └── extension/\n│       ├── tfoauthextension/        # TFO Auth Extension\n│       └── tfoidentityextension/    # TFO Identity Extension\n├── configs/\n│   ├── otel-collector.yaml          # Standard OTEL config\n│   ├── otel-collector-minimal.yaml  # Minimal config\n│   ├── tfo-collector.yaml           # TFO config (v1/v2)\n│   └── tfo-collector-unified.yaml   # Full TFO Platform\n├── tests/\n│   ├── unit/                        # Unit tests\n│   └── integration/                 # Integration tests\n├── build/                           # Build output\n├── manifest.yaml                    # OCB manifest\n├── Makefile\n├── Dockerfile\n├── docker-compose.yml\n└── .env.example\n```\n\n## Development\n\n### Build Commands\n\n```bash\nmake help              # Show all commands\nmake build             # Build with OCB\nmake test              # Run all tests\nmake test-unit         # Run unit tests\nmake test-integration  # Run integration tests\nmake lint              # Run linters\nmake clean             # Clean build artifacts\nmake docker            # Build Docker image\n```\n\n### Running Tests\n\n```bash\n# Run all tests\nmake test\n\n# Run unit tests only\nmake test-unit\n\n# Run integration tests\nmake test-integration\n\n# Run with coverage\ngo test -cover ./tests/...\n```\n\n## Documentation\n\n| Document                               | Description                     |\n| -------------------------------------- | ------------------------------- |\n| [README](docs/README.md)               | Documentation overview          |\n| [INSTALLATION](docs/INSTALLATION.md)   | Installation guide              |\n| [CONFIGURATION](docs/CONFIGURATION.md) | Configuration options           |\n| [COMPONENTS](docs/COMPONENTS.md)       | Available components            |\n| [EXEMPLARS](docs/EXEMPLARS.md)         | Exemplars and metrics-to-traces |\n| [CHANGELOG](CHANGELOG.md)              | Version history                 |\n\n## License\n\nApache License 2.0 - See [LICENSE](../LICENSE)\n\n## Links\n\n- **Website**: [https://telemetryflow.id](https://telemetryflow.id)\n- **Documentation**: [https://docs.telemetryflow.id](https://docs.telemetryflow.id)\n- **OpenTelemetry**: [https://opentelemetry.io](https://opentelemetry.io)\n- **Developer**: [DevOpsCorner Indonesia](https://devopscorner.id)\n\n---\n\n**Copyright (c) 2024-2026 DevOpsCorner Indonesia. All rights reserved.**\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftelemetryflow%2Ftelemetryflow-collector","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftelemetryflow%2Ftelemetryflow-collector","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftelemetryflow%2Ftelemetryflow-collector/lists"}