Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Added httpcheckreceiver, otlphttpexporter and spanmetricsconnector #4977

Merged
merged 4 commits into from
Jun 21, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2,348 changes: 1,612 additions & 736 deletions NOTICE.txt

Large diffs are not rendered by default.

43 changes: 24 additions & 19 deletions go.mod
Original file line number Diff line number Diff line change
Expand Up @@ -43,19 +43,6 @@ require (
github.com/mitchellh/hashstructure v1.1.0
github.com/mitchellh/mapstructure v1.5.1-0.20231216201459-8508981c8b6c
github.com/oklog/ulid v1.3.1
github.com/open-telemetry/opentelemetry-collector-contrib/exporter/elasticsearchexporter v0.103.0
github.com/open-telemetry/opentelemetry-collector-contrib/exporter/fileexporter v0.103.0
github.com/open-telemetry/opentelemetry-collector-contrib/extension/storage/filestorage v0.103.0
github.com/open-telemetry/opentelemetry-collector-contrib/processor/attributesprocessor v0.103.0
github.com/open-telemetry/opentelemetry-collector-contrib/processor/filterprocessor v0.103.0
github.com/open-telemetry/opentelemetry-collector-contrib/processor/k8sattributesprocessor v0.103.0
github.com/open-telemetry/opentelemetry-collector-contrib/processor/resourcedetectionprocessor v0.103.0
github.com/open-telemetry/opentelemetry-collector-contrib/processor/resourceprocessor v0.103.0
github.com/open-telemetry/opentelemetry-collector-contrib/processor/transformprocessor v0.103.0
github.com/open-telemetry/opentelemetry-collector-contrib/receiver/filelogreceiver v0.103.0
github.com/open-telemetry/opentelemetry-collector-contrib/receiver/hostmetricsreceiver v0.103.0
github.com/open-telemetry/opentelemetry-collector-contrib/receiver/k8sclusterreceiver v0.103.0
github.com/open-telemetry/opentelemetry-collector-contrib/receiver/kubeletstatsreceiver v0.103.0
github.com/otiai10/copy v1.14.0
github.com/pierrre/gotestcover v0.0.0-20160517101806-924dca7d15f0
github.com/pkg/errors v0.9.1
Expand All @@ -73,11 +60,6 @@ require (
go.elastic.co/apm/module/apmgorilla v1.15.0
go.elastic.co/ecszap v1.0.1
go.elastic.co/go-licence-detector v0.5.0
go.opentelemetry.io/collector/exporter/debugexporter v0.103.0
go.opentelemetry.io/collector/exporter/otlpexporter v0.103.0
go.opentelemetry.io/collector/extension/memorylimiterextension v0.103.0
go.opentelemetry.io/collector/processor/batchprocessor v0.103.0
go.opentelemetry.io/collector/receiver/otlpreceiver v0.103.0
go.uber.org/zap v1.27.0
golang.org/x/crypto v0.24.0
golang.org/x/lint v0.0.0-20210508222113-6edffad5e616
Expand All @@ -104,6 +86,21 @@ require (
require (
github.com/cavaliercoder/badio v0.0.0-20160213150051-ce5280129e9e // indirect
github.com/distribution/reference v0.5.0 // indirect
github.com/open-telemetry/opentelemetry-collector-contrib/connector/spanmetricsconnector v0.103.0
github.com/open-telemetry/opentelemetry-collector-contrib/exporter/elasticsearchexporter v0.103.0
github.com/open-telemetry/opentelemetry-collector-contrib/exporter/fileexporter v0.103.0
github.com/open-telemetry/opentelemetry-collector-contrib/extension/storage/filestorage v0.103.0
github.com/open-telemetry/opentelemetry-collector-contrib/processor/attributesprocessor v0.103.0
github.com/open-telemetry/opentelemetry-collector-contrib/processor/filterprocessor v0.103.0
github.com/open-telemetry/opentelemetry-collector-contrib/processor/k8sattributesprocessor v0.103.0
github.com/open-telemetry/opentelemetry-collector-contrib/processor/resourcedetectionprocessor v0.103.0
github.com/open-telemetry/opentelemetry-collector-contrib/processor/resourceprocessor v0.103.0
github.com/open-telemetry/opentelemetry-collector-contrib/processor/transformprocessor v0.103.0
github.com/open-telemetry/opentelemetry-collector-contrib/receiver/filelogreceiver v0.103.0
github.com/open-telemetry/opentelemetry-collector-contrib/receiver/hostmetricsreceiver v0.103.0
github.com/open-telemetry/opentelemetry-collector-contrib/receiver/httpcheckreceiver v0.103.0
github.com/open-telemetry/opentelemetry-collector-contrib/receiver/k8sclusterreceiver v0.103.0
github.com/open-telemetry/opentelemetry-collector-contrib/receiver/kubeletstatsreceiver v0.103.0
go.opentelemetry.io/collector/component v0.103.0
go.opentelemetry.io/collector/confmap v0.103.0
go.opentelemetry.io/collector/confmap/converter/expandconverter v0.103.0
Expand All @@ -112,12 +109,19 @@ require (
go.opentelemetry.io/collector/confmap/provider/httpprovider v0.103.0
go.opentelemetry.io/collector/confmap/provider/httpsprovider v0.103.0
go.opentelemetry.io/collector/confmap/provider/yamlprovider v0.103.0
go.opentelemetry.io/collector/connector v0.103.0
go.opentelemetry.io/collector/exporter v0.103.0
go.opentelemetry.io/collector/exporter/debugexporter v0.103.0
go.opentelemetry.io/collector/exporter/otlpexporter v0.103.0
go.opentelemetry.io/collector/exporter/otlphttpexporter v0.103.0
go.opentelemetry.io/collector/extension v0.103.0
go.opentelemetry.io/collector/extension/memorylimiterextension v0.103.0
go.opentelemetry.io/collector/featuregate v1.10.0
go.opentelemetry.io/collector/otelcol v0.103.0
go.opentelemetry.io/collector/processor v0.103.0
go.opentelemetry.io/collector/processor/batchprocessor v0.103.0
go.opentelemetry.io/collector/receiver v0.103.0
go.opentelemetry.io/collector/receiver/otlpreceiver v0.103.0
)

require (
Expand Down Expand Up @@ -194,6 +198,7 @@ require (
github.com/leodido/ragel-machinery v0.0.0-20190525184631-5f46317e436b // indirect
github.com/leoluk/perflib_exporter v0.2.1 // indirect
github.com/lestrrat-go/strftime v1.0.6 // indirect
github.com/lightstep/go-expohisto v1.0.0 // indirect
github.com/lufia/plan9stats v0.0.0-20211012122336-39d0f177ccd0 // indirect
github.com/mailru/easyjson v0.7.7 // indirect
github.com/markbates/pkger v0.17.0 // indirect
Expand Down Expand Up @@ -242,6 +247,7 @@ require (
github.com/shirou/gopsutil/v4 v4.24.5 // indirect
github.com/shoenig/go-m1cpu v0.1.6 // indirect
github.com/stretchr/objx v0.5.2 // indirect
github.com/tilinna/clock v1.1.0 // indirect
github.com/tklauser/go-sysconf v0.3.12 // indirect
github.com/tklauser/numcpus v0.6.1 // indirect
github.com/valyala/fastjson v1.6.4 // indirect
Expand All @@ -264,7 +270,6 @@ require (
go.opentelemetry.io/collector/config/configtelemetry v0.103.0 // indirect
go.opentelemetry.io/collector/config/configtls v0.103.0 // indirect
go.opentelemetry.io/collector/config/internal v0.103.0 // indirect
go.opentelemetry.io/collector/connector v0.103.0 // indirect
go.opentelemetry.io/collector/consumer v0.103.0 // indirect
go.opentelemetry.io/collector/extension/auth v0.103.0 // indirect
go.opentelemetry.io/collector/filter v0.103.0 // indirect
Expand Down
10 changes: 10 additions & 0 deletions go.sum
Original file line number Diff line number Diff line change
Expand Up @@ -1389,6 +1389,8 @@ github.com/lestrrat-go/strftime v1.0.6/go.mod h1:f7jQKgV5nnJpYgdEasS+/y7EsTb8ykN
github.com/lib/pq v1.2.0/go.mod h1:5WUZQaWbwv1U+lTReE5YruASi9Al49XbQIvNi/34Woo=
github.com/lib/pq v1.10.7/go.mod h1:AlVN5x4E4T544tWzH6hKfbfQvm3HdbOxrmggDNAPY9o=
github.com/liggitt/tabwriter v0.0.0-20181228230101-89fcab3d43de/go.mod h1:zAbeS9B/r2mtpb6U+EI2rYA5OAXxsYw6wTamcNW+zcE=
github.com/lightstep/go-expohisto v1.0.0 h1:UPtTS1rGdtehbbAF7o/dhkWLTDI73UifG8LbfQI7cA4=
github.com/lightstep/go-expohisto v1.0.0/go.mod h1:xDXD0++Mu2FOaItXtdDfksfgxfV0z1TMPa+e/EUd0cs=
github.com/linuxkit/virtsock v0.0.0-20201010232012-f8cee7dfc7a3/go.mod h1:3r6x7q95whyfWQpmGZTu3gk3v2YkMi05HEzl7Tf7YEo=
github.com/lithammer/dedent v1.1.0/go.mod h1:jrXYCQtgg0nJiN+StA2KgR7w6CiQNv9Fd/Z9BP0jIOc=
github.com/lithammer/shortuuid/v3 v3.0.7/go.mod h1:vMk8ke37EmiewwolSO1NLW8vP4ZaKlRuDIi8tWWmAts=
Expand Down Expand Up @@ -1596,6 +1598,8 @@ github.com/onsi/gomega v1.22.1/go.mod h1:x6n7VNe4hw0vkyYUM4mjIXx3JbLiPaBPNgB7PRQ
github.com/onsi/gomega v1.23.0/go.mod h1:Z/NWtiqwBrwUt4/2loMmHL63EDLnYHmVbuBpDr2vQAg=
github.com/onsi/gomega v1.29.0 h1:KIA/t2t5UBzoirT4H9tsML45GEbo3ouUnBHsCfD2tVg=
github.com/onsi/gomega v1.29.0/go.mod h1:9sxs+SwGrKI0+PWe4Fxa9tFQQBG5xSsSbMXOI8PPpoQ=
github.com/open-telemetry/opentelemetry-collector-contrib/connector/spanmetricsconnector v0.103.0 h1:th1Swa6AOTpbr8Yui5/LLQjIwUZhV4wcbfvusKL9qSk=
github.com/open-telemetry/opentelemetry-collector-contrib/connector/spanmetricsconnector v0.103.0/go.mod h1:5bCbYY4xRBBIwzUOdBcezz6iff7+LtPNZBYYxk+cFro=
github.com/open-telemetry/opentelemetry-collector-contrib/exporter/elasticsearchexporter v0.103.0 h1:HIxeM8zec+qVIFwPuqM8mP3PEa9ODW/M5DKLkrNEMcI=
github.com/open-telemetry/opentelemetry-collector-contrib/exporter/elasticsearchexporter v0.103.0/go.mod h1:TbovkNidI+olc1uNAV8xIqf6E/WOWNigEaN1BVZyEXU=
github.com/open-telemetry/opentelemetry-collector-contrib/exporter/fileexporter v0.103.0 h1:wC4nWmlXsM7FQseO73Ic+8MftJV7NRtqPjFY475Jo90=
Expand Down Expand Up @@ -1656,6 +1660,8 @@ github.com/open-telemetry/opentelemetry-collector-contrib/receiver/filelogreceiv
github.com/open-telemetry/opentelemetry-collector-contrib/receiver/filelogreceiver v0.103.0/go.mod h1:cdJpaBiLfV16LteiKj8iP7snJ6alJy1dVa7FTcC915c=
github.com/open-telemetry/opentelemetry-collector-contrib/receiver/hostmetricsreceiver v0.103.0 h1:8HZm7c/QOvrLdj3bZjoBaL1YqRme6/x3gCKJvvF6uMU=
github.com/open-telemetry/opentelemetry-collector-contrib/receiver/hostmetricsreceiver v0.103.0/go.mod h1:saj0LAF7PbWIYnNjYjuM5UXjLiTnOug5r731oLkQv6Q=
github.com/open-telemetry/opentelemetry-collector-contrib/receiver/httpcheckreceiver v0.103.0 h1:UnhfOFVZdN1344pT0yfTcRZwKOBlgdUz5iBLN66GgyU=
github.com/open-telemetry/opentelemetry-collector-contrib/receiver/httpcheckreceiver v0.103.0/go.mod h1:928SKR44tAnAG5KfDzfY6waRRohMsgFj29TC4wdR04E=
github.com/open-telemetry/opentelemetry-collector-contrib/receiver/k8sclusterreceiver v0.103.0 h1:7W4crd2OcXyZatXUgV0diOIKAdYBdmbwrvTw45UkDfA=
github.com/open-telemetry/opentelemetry-collector-contrib/receiver/k8sclusterreceiver v0.103.0/go.mod h1:dY3HXexyi150ycmfpH2ymMnWagsJy2rVF4Y9nZXPLkI=
github.com/open-telemetry/opentelemetry-collector-contrib/receiver/kubeletstatsreceiver v0.103.0 h1:HOJ27FvPvxRV3f+wgAfdPrbFNTa1GxlnuWHt1VdhmCE=
Expand Down Expand Up @@ -1937,6 +1943,8 @@ github.com/testcontainers/testcontainers-go v0.13.0/go.mod h1:z1abufU633Eb/FmSBT
github.com/testcontainers/testcontainers-go v0.31.0 h1:W0VwIhcEVhRflwL9as3dhY6jXjVCA27AkmbnZ+UTh3U=
github.com/testcontainers/testcontainers-go v0.31.0/go.mod h1:D2lAoA0zUFiSY+eAflqK5mcUx/A5hrrORaEQrd0SefI=
github.com/tidwall/pretty v1.0.0/go.mod h1:XNkn88O1ChpSDQmQeStsy+sBenx6DDtFZJxhVysOjyk=
github.com/tilinna/clock v1.1.0 h1:6IQQQCo6KoBxVudv6gwtY8o4eDfhHo8ojA5dP0MfhSs=
github.com/tilinna/clock v1.1.0/go.mod h1:ZsP7BcY7sEEz7ktc0IVy8Us6boDrK8VradlKRUGfOao=
github.com/tklauser/go-sysconf v0.3.11/go.mod h1:GqXfhXY3kiPa0nAXPDIQIWzJbMCB7AmcWpGR8lSZfqI=
github.com/tklauser/go-sysconf v0.3.12 h1:0QaGUFOdQaIVdPgfITYzaTegZvdCjmYO52cSFAEVmqU=
github.com/tklauser/go-sysconf v0.3.12/go.mod h1:Ho14jnntGE1fpdOqQEEaiKRpvIavV0hSfmBq8nJbHYI=
Expand Down Expand Up @@ -2114,6 +2122,8 @@ go.opentelemetry.io/collector/exporter/debugexporter v0.103.0 h1:jwZHoXvp3vdQ3ob
go.opentelemetry.io/collector/exporter/debugexporter v0.103.0/go.mod h1:kzmBnKxsLNVBRGS8nwu497SvHspzyeiV06+LiPHktto=
go.opentelemetry.io/collector/exporter/otlpexporter v0.103.0 h1:YKdYP3tDOQC6sOdOD1/Sun6CA4Zwpky+aRve3dx5QcE=
go.opentelemetry.io/collector/exporter/otlpexporter v0.103.0/go.mod h1:4UVHkqgL80CRVrbD85p2k4swDe27gLyQkoKlSYOkR0A=
go.opentelemetry.io/collector/exporter/otlphttpexporter v0.103.0 h1:26jP07GOjipKnFAKw0hDnCTB67tXZzHN+uxii3mnbjw=
go.opentelemetry.io/collector/exporter/otlphttpexporter v0.103.0/go.mod h1:qJGL48tf0CamMLUjO+HtxDeDZ+4pvvxxF1GDqE5VHnc=
go.opentelemetry.io/collector/extension v0.103.0 h1:vTsd+GElvT7qKk9Y9d6UKuuT2Ngx0mai8Q48hkKQMwM=
go.opentelemetry.io/collector/extension v0.103.0/go.mod h1:rp2l3xskNKWv0yBCyU69Pv34TnP1QVD1ijr0zSndnsM=
go.opentelemetry.io/collector/extension/auth v0.103.0 h1:i7cQl+Ewpve/DIN4rFMg1GiyUPE14LZsYWrJ1RqtP84=
Expand Down
11 changes: 11 additions & 0 deletions internal/pkg/otel/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -33,6 +33,7 @@ This section provides a summary of components included in the Elastic Distributi
|---|---|
| filelogreceiver | v0.103.0|
| hostmetricsreceiver | v0.103.0|
| httpcheckreceiver | v0.103.0|
| k8sclusterreceiver | v0.103.0|
| kubeletstatsreceiver | v0.103.0|
| otlpreceiver | v0.103.0|
Expand All @@ -48,6 +49,7 @@ This section provides a summary of components included in the Elastic Distributi
| fileexporter | v0.103.0|
| debugexporter | v0.103.0|
| otlpexporter | v0.103.0|
| otlphttpexporter | v0.103.0|



Expand Down Expand Up @@ -75,3 +77,12 @@ This section provides a summary of components included in the Elastic Distributi
| storage/filestorage | v0.103.0|
| memorylimiterextension | v0.103.0|




### Connectors

| Component | Version |
|---|---|
| spanmetricsconnector | v0.103.0|

15 changes: 15 additions & 0 deletions internal/pkg/otel/components.go
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@
package otel

import (
"go.opentelemetry.io/collector/connector"
"go.opentelemetry.io/collector/exporter"
"go.opentelemetry.io/collector/extension"
"go.opentelemetry.io/collector/otelcol"
Expand All @@ -16,6 +17,7 @@ import (
// Receivers:
filelogreceiver "github.com/open-telemetry/opentelemetry-collector-contrib/receiver/filelogreceiver" // for collecting log files
hostmetricsreceiver "github.com/open-telemetry/opentelemetry-collector-contrib/receiver/hostmetricsreceiver"
httpcheckreceiver "github.com/open-telemetry/opentelemetry-collector-contrib/receiver/httpcheckreceiver"
k8sclusterreceiver "github.com/open-telemetry/opentelemetry-collector-contrib/receiver/k8sclusterreceiver"
kubeletstatsreceiver "github.com/open-telemetry/opentelemetry-collector-contrib/receiver/kubeletstatsreceiver"
otlpreceiver "go.opentelemetry.io/collector/receiver/otlpreceiver"
Expand All @@ -36,10 +38,14 @@ import (
fileexporter "github.com/open-telemetry/opentelemetry-collector-contrib/exporter/fileexporter" // for e2e tests
debugexporter "go.opentelemetry.io/collector/exporter/debugexporter" // for dev
"go.opentelemetry.io/collector/exporter/otlpexporter"
otlphttpexporter "go.opentelemetry.io/collector/exporter/otlphttpexporter"

// Extensions
filestorage "github.com/open-telemetry/opentelemetry-collector-contrib/extension/storage/filestorage"
"go.opentelemetry.io/collector/extension/memorylimiterextension" // for putting backpressure when approach a memory limit

// Connectors
spanmetricsconnector "github.com/open-telemetry/opentelemetry-collector-contrib/connector/spanmetricsconnector"
)

func components() (otelcol.Factories, error) {
Expand All @@ -53,6 +59,7 @@ func components() (otelcol.Factories, error) {
kubeletstatsreceiver.NewFactory(),
k8sclusterreceiver.NewFactory(),
hostmetricsreceiver.NewFactory(),
httpcheckreceiver.NewFactory(),
)
if err != nil {
return otelcol.Factories{}, err
Expand All @@ -79,6 +86,14 @@ func components() (otelcol.Factories, error) {
debugexporter.NewFactory(),
fileexporter.NewFactory(),
elasticsearchexporter.NewFactory(),
otlphttpexporter.NewFactory(),
)
if err != nil {
return otelcol.Factories{}, err
}

factories.Connectors, err = connector.MakeFactoryMap(
spanmetricsconnector.NewFactory(),
)
if err != nil {
return otelcol.Factories{}, err
Expand Down
9 changes: 9 additions & 0 deletions internal/pkg/otel/templates/README.md.tmpl
Original file line number Diff line number Diff line change
Expand Up @@ -60,4 +60,13 @@ This section provides a summary of components included in the Elastic Distributi
|---|---|
{{ range .Extensions }}| {{ .Name }} | {{ .Version -}} |
{{ end }}
{{ end }}

{{ if .Connectors }}
### Connectors

| Component | Version |
|---|---|
{{ range .Connectors }}| {{ .Name }} | {{ .Version -}} |
{{ end }}
{{ end }}
39 changes: 37 additions & 2 deletions internal/pkg/otel/testdata/all-components.yml
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,8 @@ exporters:
path: /tmp/file-exporter-output.json
otlp:
endpoint: localhots:4317
otlphttp:
endpoint: https://localhost.com:4318

extensions:
memory_limiter:
Expand Down Expand Up @@ -38,6 +40,37 @@ receivers:
protocols:
grpc:
http:
httpcheck:
targets:
- endpoint: http://localhost:80
method: GET
collection_interval: 10s

connectors:
spanmetrics:
histogram:
explicit:
buckets: [100us, 1ms, 2ms, 6ms, 10ms, 100ms, 250ms]
dimensions:
- name: http.method
default: GET
- name: http.status_code
exemplars:
enabled: true
exclude_dimensions: ['status.code']
dimensions_cache_size: 1000
aggregation_temporality: "AGGREGATION_TEMPORALITY_CUMULATIVE"
metrics_flush_interval: 15s
metrics_expiration: 5m
events:
enabled: true
dimensions:
- name: exception.type
- name: exception.message
resource_metrics_key_attributes:
- service.name
- telemetry.sdk.language
- telemetry.sdk.name

service:
extensions:
Expand All @@ -63,7 +96,6 @@ service:
metrics:
exporters:
- debug
- file
- otlp
processors:
- attributes
Expand All @@ -75,13 +107,16 @@ service:
- transform
receivers:
- otlp
- httpcheck
- spanmetrics

traces:
exporters:
- debug
- elasticsearch
- file
- otlp
- otlphttp
- spanmetrics
processors:
- attributes
- batch
Expand Down
6 changes: 5 additions & 1 deletion magefile.go
Original file line number Diff line number Diff line change
Expand Up @@ -3153,6 +3153,7 @@ type dependencies struct {
Exporters []dependency
Processors []dependency
Extensions []dependency
Connectors []dependency
}

func (d dependency) Clean(sep string) dependency {
Expand Down Expand Up @@ -3209,7 +3210,7 @@ func getOtelDependencies() (*dependencies, error) {
scanner := bufio.NewScanner(readFile)

scanner.Split(bufio.ScanLines)
var receivers, extensions, exporters, processors []dependency
var receivers, extensions, exporters, processors, connectors []dependency
// process imports
for scanner.Scan() {
l := strings.TrimSpace(scanner.Text())
Expand Down Expand Up @@ -3248,6 +3249,8 @@ func getOtelDependencies() (*dependencies, error) {
exporters = append(exporters, d.Clean("/exporter/"))
} else if strings.Contains(l, "/extension/") {
extensions = append(extensions, d.Clean("/extension/"))
} else if strings.Contains(l, "/connector/") {
connectors = append(connectors, d.Clean("/connector/"))
}
}

Expand All @@ -3256,5 +3259,6 @@ func getOtelDependencies() (*dependencies, error) {
Exporters: exporters,
Processors: processors,
Extensions: extensions,
Connectors: connectors,
}, nil
}