Skip to content

Commit

Permalink
[exporter/cassandra] Intital implementation (#18515)
Browse files Browse the repository at this point in the history
cassandra exporter implementation

---------

Co-authored-by: Antoine Toulme <[email protected]>
  • Loading branch information
emreyalvac and atoulme committed Apr 22, 2023
1 parent a6c7576 commit 691044b
Show file tree
Hide file tree
Showing 31 changed files with 1,212 additions and 5 deletions.
16 changes: 16 additions & 0 deletions .chloggen/cassandra-exporter.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
# One of 'breaking', 'deprecation', 'new_component', 'enhancement', 'bug_fix'
change_type: new_component

# The name of the component, or a single word describing the area of concern, (e.g. filelogreceiver)
component: cassandra_exporter

# A brief description of the change. Surround your text with quotes ("") if it needs to start with a backtick (`).
note: Cassandra exporter implementation

# One or more tracking issues related to the change
issues: [17910]

# (Optional) One or more lines of additional information to render under the primary note.
# These lines will be padded with 2 spaces and then inserted directly into the document.
# Use pipe (|) for multiline entries.
subtext:
1 change: 1 addition & 0 deletions .github/CODEOWNERS
Validating CODEOWNERS rules …
Original file line number Diff line number Diff line change
Expand Up @@ -44,6 +44,7 @@ exporter/azuremonitorexporter/ @open-telemetry/collect
exporter/azuredataexplorerexporter/ @open-telemetry/collector-contrib-approvers @asaharan @ag-ramachandran
exporter/carbonexporter/ @open-telemetry/collector-contrib-approvers @pjanotti
exporter/clickhouseexporter/ @open-telemetry/collector-contrib-approvers @hanjm @dmitryax @Frapschen
exporter/cassandraexporter/ @open-telemetry/collector-contrib-approvers @atoulme @emreyalvac
exporter/coralogixexporter/ @open-telemetry/collector-contrib-approvers @oded-dd @povilasv @matej-g
exporter/datadogexporter/ @open-telemetry/collector-contrib-approvers @mx-psi @gbbr @dineshg13 @liustanley @songy23
exporter/dynatraceexporter/ @open-telemetry/collector-contrib-approvers @dyladan @arminru @evan-bradley
Expand Down
1 change: 1 addition & 0 deletions .github/ISSUE_TEMPLATE/bug_report.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -37,6 +37,7 @@ body:
- exporter/azuredataexplorer
- exporter/azuremonitor
- exporter/carbon
- exporter/cassandra
- exporter/clickhouse
- exporter/coralogix
- exporter/datadog
Expand Down
1 change: 1 addition & 0 deletions .github/ISSUE_TEMPLATE/feature_request.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,7 @@ body:
- exporter/azuredataexplorer
- exporter/azuremonitor
- exporter/carbon
- exporter/cassandra
- exporter/clickhouse
- exporter/coralogix
- exporter/datadog
Expand Down
1 change: 1 addition & 0 deletions .github/ISSUE_TEMPLATE/other.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,7 @@ body:
- exporter/azuredataexplorer
- exporter/azuremonitor
- exporter/carbon
- exporter/cassandra
- exporter/clickhouse
- exporter/coralogix
- exporter/datadog
Expand Down
10 changes: 5 additions & 5 deletions .github/dependabot.yml
Original file line number Diff line number Diff line change
Expand Up @@ -107,6 +107,11 @@ updates:
schedule:
interval: "weekly"
day: "wednesday"
- package-ecosystem: "gomod"
directory: "/exporter/cassandraexporter"
schedule:
interval: "weekly"
day: "wednesday"
- package-ecosystem: "gomod"
directory: "/exporter/clickhouseexporter"
schedule:
Expand Down Expand Up @@ -1097,8 +1102,3 @@ updates:
schedule:
interval: "weekly"
day: "wednesday"
- package-ecosystem: "gomod"
directory: "/receiver/zookeeperreceiver"
schedule:
interval: "weekly"
day: "wednesday"
5 changes: 5 additions & 0 deletions cmd/configschema/go.mod
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,8 @@ require (
github.com/AzureAD/microsoft-authentication-library-for-go v0.7.0 // indirect
github.com/DataDog/opentelemetry-mapping-go/pkg/otlp/attributes v0.1.5 // indirect
github.com/DataDog/opentelemetry-mapping-go/pkg/otlp/metrics v0.1.5 // indirect
github.com/gocql/gocql v1.3.1 // indirect
github.com/hailocab/go-hostpool v0.0.0-20160125115350-e80d13ce29ed // indirect
github.com/open-telemetry/opentelemetry-collector-contrib/exporter/alibabacloudlogserviceexporter v0.75.0 // indirect
github.com/open-telemetry/opentelemetry-collector-contrib/exporter/awscloudwatchlogsexporter v0.75.0 // indirect
github.com/open-telemetry/opentelemetry-collector-contrib/exporter/awsemfexporter v0.75.0 // indirect
Expand All @@ -29,6 +31,7 @@ require (
github.com/open-telemetry/opentelemetry-collector-contrib/exporter/azuredataexplorerexporter v0.75.0 // indirect
github.com/open-telemetry/opentelemetry-collector-contrib/exporter/azuremonitorexporter v0.75.0 // indirect
github.com/open-telemetry/opentelemetry-collector-contrib/exporter/carbonexporter v0.75.0 // indirect
github.com/open-telemetry/opentelemetry-collector-contrib/exporter/cassandraexporter v0.75.0 // indirect
github.com/open-telemetry/opentelemetry-collector-contrib/exporter/clickhouseexporter v0.75.0 // indirect
github.com/open-telemetry/opentelemetry-collector-contrib/exporter/coralogixexporter v0.75.0 // indirect
github.com/open-telemetry/opentelemetry-collector-contrib/exporter/datadogexporter v0.75.0 // indirect
Expand Down Expand Up @@ -700,6 +703,8 @@ replace github.com/open-telemetry/opentelemetry-collector-contrib/exporter/carbo

replace github.com/open-telemetry/opentelemetry-collector-contrib/exporter/clickhouseexporter => ../../exporter/clickhouseexporter

replace github.com/open-telemetry/opentelemetry-collector-contrib/exporter/cassandraexporter => ../../exporter/cassandraexporter

replace github.com/open-telemetry/opentelemetry-collector-contrib/exporter/coralogixexporter => ../../exporter/coralogixexporter

replace github.com/open-telemetry/opentelemetry-collector-contrib/exporter/datadogexporter => ../../exporter/datadogexporter
Expand Down
5 changes: 5 additions & 0 deletions cmd/configschema/go.sum

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

2 changes: 2 additions & 0 deletions cmd/otelcontribcol/builder-config.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -39,6 +39,7 @@ exporters:
- gomod: github.com/open-telemetry/opentelemetry-collector-contrib/exporter/azuremonitorexporter v0.75.0
- gomod: github.com/open-telemetry/opentelemetry-collector-contrib/exporter/carbonexporter v0.75.0
- gomod: github.com/open-telemetry/opentelemetry-collector-contrib/exporter/clickhouseexporter v0.75.0
- gomod: github.com/open-telemetry/opentelemetry-collector-contrib/exporter/cassandraexporter v0.75.0
- gomod: github.com/open-telemetry/opentelemetry-collector-contrib/exporter/coralogixexporter v0.75.0
- gomod: github.com/open-telemetry/opentelemetry-collector-contrib/exporter/datadogexporter v0.75.0
- gomod: github.com/open-telemetry/opentelemetry-collector-contrib/exporter/dynatraceexporter v0.75.0
Expand Down Expand Up @@ -219,6 +220,7 @@ replaces:
- github.com/open-telemetry/opentelemetry-collector-contrib/exporter/skywalkingexporter => ../../exporter/skywalkingexporter
- github.com/open-telemetry/opentelemetry-collector-contrib/exporter/mezmoexporter => ../../exporter/mezmoexporter
- github.com/open-telemetry/opentelemetry-collector-contrib/exporter/clickhouseexporter => ../../exporter/clickhouseexporter
- github.com/open-telemetry/opentelemetry-collector-contrib/exporter/cassandraexporter => ../../exporter/cassandraexporter
- github.com/open-telemetry/opentelemetry-collector-contrib/receiver/udplogreceiver => ../../receiver/udplogreceiver
- github.com/open-telemetry/opentelemetry-collector-contrib/internal/splunk => ../../internal/splunk
- github.com/open-telemetry/opentelemetry-collector-contrib/receiver/podmanreceiver => ../../receiver/podmanreceiver
Expand Down
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.

10 changes: 10 additions & 0 deletions cmd/otelcontribcol/exporters_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -42,6 +42,7 @@ import (
"github.com/open-telemetry/opentelemetry-collector-contrib/exporter/azuredataexplorerexporter"
"github.com/open-telemetry/opentelemetry-collector-contrib/exporter/azuremonitorexporter"
"github.com/open-telemetry/opentelemetry-collector-contrib/exporter/carbonexporter"
"github.com/open-telemetry/opentelemetry-collector-contrib/exporter/cassandraexporter"
"github.com/open-telemetry/opentelemetry-collector-contrib/exporter/clickhouseexporter"
"github.com/open-telemetry/opentelemetry-collector-contrib/exporter/coralogixexporter"
"github.com/open-telemetry/opentelemetry-collector-contrib/exporter/datadogexporter"
Expand Down Expand Up @@ -307,6 +308,15 @@ func TestDefaultExporters(t *testing.T) {
},
skipLifecycle: true,
},
{
exporter: "cassandra",
getConfigFn: func() component.Config {
cfg := expFactories["cassandra"].CreateDefaultConfig().(*cassandraexporter.Config)
cfg.DSN = endpoint
return cfg
},
skipLifecycle: true,
},
{
exporter: "coralogix",
getConfigFn: func() component.Config {
Expand Down
5 changes: 5 additions & 0 deletions cmd/otelcontribcol/go.mod
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@ require (
github.com/open-telemetry/opentelemetry-collector-contrib/exporter/azuredataexplorerexporter v0.75.0
github.com/open-telemetry/opentelemetry-collector-contrib/exporter/azuremonitorexporter v0.75.0
github.com/open-telemetry/opentelemetry-collector-contrib/exporter/carbonexporter v0.75.0
github.com/open-telemetry/opentelemetry-collector-contrib/exporter/cassandraexporter v0.75.0
github.com/open-telemetry/opentelemetry-collector-contrib/exporter/clickhouseexporter v0.75.0
github.com/open-telemetry/opentelemetry-collector-contrib/exporter/coralogixexporter v0.75.0
github.com/open-telemetry/opentelemetry-collector-contrib/exporter/datadogexporter v0.75.0
Expand Down Expand Up @@ -356,6 +357,7 @@ require (
github.com/go-stack/stack v1.8.1 // indirect
github.com/go-zookeeper/zk v1.0.3 // indirect
github.com/gobwas/glob v0.2.3 // indirect
github.com/gocql/gocql v1.3.1 // indirect
github.com/godbus/dbus v0.0.0-20190726142602-4481cbc300e2 // indirect
github.com/godbus/dbus/v5 v5.0.6 // indirect
github.com/gofrs/uuid v4.2.0+incompatible // indirect
Expand Down Expand Up @@ -388,6 +390,7 @@ require (
github.com/grobie/gomemcache v0.0.0-20180201122607-1f779c573665 // indirect
github.com/grpc-ecosystem/grpc-gateway/v2 v2.15.2 // indirect
github.com/gsterjov/go-libsecret v0.0.0-20161001094733-a6f4afe4910c // indirect
github.com/hailocab/go-hostpool v0.0.0-20160125115350-e80d13ce29ed // indirect
github.com/hashicorp/consul/api v1.20.0 // indirect
github.com/hashicorp/cronexpr v1.1.1 // indirect
github.com/hashicorp/errwrap v1.1.0 // indirect
Expand Down Expand Up @@ -720,6 +723,8 @@ replace github.com/open-telemetry/opentelemetry-collector-contrib/exporter/mezmo

replace github.com/open-telemetry/opentelemetry-collector-contrib/exporter/clickhouseexporter => ../../exporter/clickhouseexporter

replace github.com/open-telemetry/opentelemetry-collector-contrib/exporter/cassandraexporter => ../../exporter/cassandraexporter

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

replace github.com/open-telemetry/opentelemetry-collector-contrib/internal/splunk => ../../internal/splunk
Expand Down
5 changes: 5 additions & 0 deletions cmd/otelcontribcol/go.sum

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

1 change: 1 addition & 0 deletions exporter/cassandraexporter/Makefile
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
include ../../Makefile.Common
34 changes: 34 additions & 0 deletions exporter/cassandraexporter/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
# Cassandra Exporter

| Status | |
|--------------------------|--------------|
| Stability | [alpha] |
| Supported pipeline types | logs, traces |
| Distributions | [contrib] |

## Configuration options

The following settings can be optionally configured:

- `dsn` The Cassandra server DSN (Data Source Name), for example `127.0.0.1`.
reference: [https://pkg.go.dev/github.com/gocql/gocql](https://pkg.go.dev/github.com/gocql/gocql)
- `keyspace` (default = otel): The keyspace name.
- `trace_table` (default = otel_spans): The table name for traces.
- `replication` (default = class: SimpleStrategy, replication_factor: 1) The strategy of
replication. https://cassandra.apache.org/doc/4.1/cassandra/architecture/dynamo.html#replication-strategy
- `compression` (default = LZ4Compressor) https://cassandra.apache.org/doc/latest/cassandra/operating/compression.html

## Example

```yaml
exporters:
cassandra:
dsn: 127.0.0.1
keyspace: "otel"
trace_table: "otel_spans"
replication:
class: "SimpleStrategy"
replication_factor: 1
compression:
algorithm: "ZstdCompressor"
```
Loading

0 comments on commit 691044b

Please sign in to comment.