Skip to content

Commit

Permalink
Add Apache Druid receiver
Browse files Browse the repository at this point in the history
  • Loading branch information
yuanlihan committed Mar 18, 2024
1 parent b4965d2 commit df1af00
Show file tree
Hide file tree
Showing 27 changed files with 29,449 additions and 1 deletion.
1 change: 1 addition & 0 deletions .github/ISSUE_TEMPLATE/bug_report.yaml
Expand Up @@ -177,6 +177,7 @@ body:
- receiver/activedirectoryds
- receiver/aerospike
- receiver/apache
- receiver/apachedruid
- receiver/apachespark
- receiver/awscloudwatch
- receiver/awscloudwatchmetrics
Expand Down
1 change: 1 addition & 0 deletions .github/ISSUE_TEMPLATE/feature_request.yaml
Expand Up @@ -171,6 +171,7 @@ body:
- receiver/activedirectoryds
- receiver/aerospike
- receiver/apache
- receiver/apachedruid
- receiver/apachespark
- receiver/awscloudwatch
- receiver/awscloudwatchmetrics
Expand Down
1 change: 1 addition & 0 deletions .github/ISSUE_TEMPLATE/other.yaml
Expand Up @@ -171,6 +171,7 @@ body:
- receiver/activedirectoryds
- receiver/aerospike
- receiver/apache
- receiver/apachedruid
- receiver/apachespark
- receiver/awscloudwatch
- receiver/awscloudwatchmetrics
Expand Down
3 changes: 2 additions & 1 deletion cmd/otelcontribcol/builder-config.yaml
Expand Up @@ -118,6 +118,7 @@ receivers:
- gomod: go.opentelemetry.io/collector/receiver/otlpreceiver v0.96.1-0.20240306115632-b2693620eff6
- gomod: github.com/open-telemetry/opentelemetry-collector-contrib/receiver/activedirectorydsreceiver v0.96.0
- gomod: github.com/open-telemetry/opentelemetry-collector-contrib/receiver/aerospikereceiver v0.96.0
- gomod: github.com/open-telemetry/opentelemetry-collector-contrib/receiver/apachedruidreceiver v0.96.0
- gomod: github.com/open-telemetry/opentelemetry-collector-contrib/receiver/apachereceiver v0.96.0
- gomod: github.com/open-telemetry/opentelemetry-collector-contrib/receiver/apachesparkreceiver v0.96.0
- gomod: github.com/open-telemetry/opentelemetry-collector-contrib/receiver/awscloudwatchreceiver v0.96.0
Expand Down Expand Up @@ -264,6 +265,7 @@ replaces:
- github.com/open-telemetry/opentelemetry-collector-contrib/extension/headerssetterextension => ../../extension/headerssetterextension
- github.com/open-telemetry/opentelemetry-collector-contrib/exporter/googlemanagedprometheusexporter => ../../exporter/googlemanagedprometheusexporter
- github.com/open-telemetry/opentelemetry-collector-contrib/receiver/aerospikereceiver => ../../receiver/aerospikereceiver
- github.com/open-telemetry/opentelemetry-collector-contrib/receiver/apachedruidreceiver => ../../receiver/apachedruidreceiver
- github.com/open-telemetry/opentelemetry-collector-contrib/processor/cumulativetodeltaprocessor => ../../processor/cumulativetodeltaprocessor
- github.com/open-telemetry/opentelemetry-collector-contrib/processor/intervalprocessor => ../../processor/intervalprocessor
- github.com/open-telemetry/opentelemetry-collector-contrib/receiver/sapmreceiver => ../../receiver/sapmreceiver
Expand Down Expand Up @@ -444,4 +446,3 @@ replaces:
- github.com/open-telemetry/opentelemetry-collector-contrib/extension/solarwindsapmsettingsextension => ../../extension/solarwindsapmsettingsextension
- github.com/open-telemetry/opentelemetry-collector-contrib/receiver/namedpipereceiver => ../../receiver/namedpipereceiver
- github.com/open-telemetry/opentelemetry-collector-contrib/internal/sqlquery => ../../internal/sqlquery

2 changes: 2 additions & 0 deletions cmd/otelcontribcol/components.go

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

3 changes: 3 additions & 0 deletions cmd/otelcontribcol/go.mod
Expand Up @@ -106,6 +106,7 @@ require (
github.com/open-telemetry/opentelemetry-collector-contrib/processor/transformprocessor v0.96.0
github.com/open-telemetry/opentelemetry-collector-contrib/receiver/activedirectorydsreceiver v0.96.0
github.com/open-telemetry/opentelemetry-collector-contrib/receiver/aerospikereceiver v0.96.0
github.com/open-telemetry/opentelemetry-collector-contrib/receiver/apachedruidreceiver v0.96.0
github.com/open-telemetry/opentelemetry-collector-contrib/receiver/apachereceiver v0.96.0
github.com/open-telemetry/opentelemetry-collector-contrib/receiver/apachesparkreceiver v0.96.0
github.com/open-telemetry/opentelemetry-collector-contrib/receiver/awscloudwatchreceiver v0.96.0
Expand Down Expand Up @@ -835,6 +836,8 @@ replace github.com/open-telemetry/opentelemetry-collector-contrib/exporter/googl

replace github.com/open-telemetry/opentelemetry-collector-contrib/receiver/aerospikereceiver => ../../receiver/aerospikereceiver

replace github.com/open-telemetry/opentelemetry-collector-contrib/receiver/apachedruidreceiver => ../../receiver/apachedruidreceiver

replace github.com/open-telemetry/opentelemetry-collector-contrib/processor/cumulativetodeltaprocessor => ../../processor/cumulativetodeltaprocessor

replace github.com/open-telemetry/opentelemetry-collector-contrib/processor/intervalprocessor => ../../processor/intervalprocessor
Expand Down
1 change: 1 addition & 0 deletions receiver/apachedruidreceiver/Makefile
@@ -0,0 +1 @@
include ../../Makefile.Common
44 changes: 44 additions & 0 deletions receiver/apachedruidreceiver/README.md
@@ -0,0 +1,44 @@
# Apache Druid Receiver

<!-- status autogenerated section -->
| Status | |
| ------------- |-----------|
| Stability | [development]: metrics, logs |
| Distributions | [contrib], [observiq], [sumo] |
| Issues | [![Open issues](https://img.shields.io/github/issues-search/open-telemetry/opentelemetry-collector-contrib?query=is%3Aissue%20is%3Aopen%20label%3Areceiver%2Fapachedruid%20&label=open&color=orange&logo=opentelemetry)](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues?q=is%3Aopen+is%3Aissue+label%3Areceiver%2Fapachedruid) [![Closed issues](https://img.shields.io/github/issues-search/open-telemetry/opentelemetry-collector-contrib?query=is%3Aissue%20is%3Aclosed%20label%3Areceiver%2Fapachedruid%20&label=closed&color=blue&logo=opentelemetry)](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues?q=is%3Aclosed+is%3Aissue+label%3Areceiver%2Fapachedruid) |
| [Code Owners](https://github.com/open-telemetry/opentelemetry-collector-contrib/blob/main/CONTRIBUTING.md#becoming-a-code-owner) | [@yuanlihan](https://www.github.com/yuanlihan) |

[development]: https://github.com/open-telemetry/opentelemetry-collector#development
[contrib]: https://github.com/open-telemetry/opentelemetry-collector-releases/tree/main/distributions/otelcol-contrib
[observiq]: https://github.com/observIQ/observiq-otel-collector
[sumo]: https://github.com/SumoLogic/sumologic-otel-collector
<!-- end autogenerated section -->

This receiver accepts [metrics](https://druid.apache.org/docs/latest/operations/metrics) data from the [HTTP Emitter](https://druid.apache.org/docs/latest/configuration/#http-emitter-module) of Apache Druid.

## Prerequisites

Apache Druid cluster needs to be configured to enable metrics, see [Enabling Metrics](https://druid.apache.org/docs/latest/configuration/#enabling-metrics) and the [HTTP Emitter Module](https://druid.apache.org/docs/latest/configuration/#http-emitter-module).

## Configuration

The following configuration options are supported:

- `endpoint` (default = 0.0.0.0:9000) HTTP service endpoint for the line protocol receiver
- `metrics_path` (default = `/services/collector/metrics`) The path accepting Apache Druid metrics.
- `logs_path` (default = `/services/collector/logs`) The path accepting Apache Druid logs.
- `cluster_name` (default = `default`) The default name of Druid cluster. Note that the [HTTP Emitter](https://druid.apache.org/docs/latest/configuration/#http-emitter-module) of Apache Druid `28.0.0` doesn't include cluster name information in metrics.

The full list of settings exposed for this receiver are documented in [config.go](config.go).

Example:

```yaml
receivers:
apachedruid:
endpoint: 0.0.0.0:9000
```

## Metrics

Details about the metrics produced by this receiver can be found in [metadata.yaml](./metadata.yaml)
19 changes: 19 additions & 0 deletions receiver/apachedruidreceiver/config.go
@@ -0,0 +1,19 @@
// Copyright The OpenTelemetry Authors
// SPDX-License-Identifier: Apache-2.0

package apachedruidreceiver // import "github.com/open-telemetry/opentelemetry-collector-contrib/receiver/apachedruidreceiver"

import (
"go.opentelemetry.io/collector/config/confighttp"
)

// Config defines configuration for the Apache Druid receiver.
type Config struct {
confighttp.HTTPServerSettings `mapstructure:",squash"`

// MetricsPath for metrics data collection, default is '/services/collector/metrics'
MetricsPath string `mapstructure:"metrics_path"`

// The name of Druid cluster
ClusterName string `mapstructure:"cluster_name"`
}
6 changes: 6 additions & 0 deletions receiver/apachedruidreceiver/doc.go
@@ -0,0 +1,6 @@
// Copyright The OpenTelemetry Authors
// SPDX-License-Identifier: Apache-2.0

//go:generate mdatagen metadata.yaml

package apachedruidreceiver // import "github.com/open-telemetry/opentelemetry-collector-contrib/receiver/apachedruidreceiver"

0 comments on commit df1af00

Please sign in to comment.