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

Change obsreport receiver calling pattern in signalfxreceiver, splunkhecreceiver, statsdreceiver, and redisreceiver #3521

Merged
merged 21 commits into from
May 26, 2021
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
Show all changes
21 commits
Select commit Hold shift + click to select a range
78fc0c3
Make changes to awsxrayreceiver
humivo May 20, 2021
0b776eb
Merge branch 'open-telemetry:main' into 3436-ChangeReceiverPattern
humivo May 20, 2021
76ec18f
Merge branch 'main' of github.com:humivo/opentelemetry-collector-cont…
humivo May 20, 2021
f0fa967
Make changes to carbonreceiver
humivo May 20, 2021
9623b26
Merge branch '3436-ChangeReceiverPattern' of github.com:humivo/opente…
humivo May 20, 2021
9e8b821
Add entry to changelog
humivo May 20, 2021
1e5d622
Merge branch 'open-telemetry:main' into 3436-ChangeReceiverPattern
humivo May 21, 2021
ee598f4
Make changes to dockerstatsreceiver
humivo May 21, 2021
f365af4
Add entry to changelog
humivo May 21, 2021
17816ce
Merge branch 'open-telemetry:main' into 3436-ChangeReceiverPattern
humivo May 24, 2021
0ab12a2
Merge branch 'open-telemetry:main' into 3436-ChangeReceiverPattern
humivo May 24, 2021
a163738
Makes changes to receiver pattern
humivo May 24, 2021
b2a70ed
Merge branch '3436-ChangeReceiverPattern' of github.com:humivo/opente…
humivo May 24, 2021
8f54b4f
Merge branch 'main' into 3436-ChangeReceiverPattern
humivo May 25, 2021
339506a
Merge branch 'open-telemetry:main' into 3436-ChangeReceiverPattern
humivo May 25, 2021
6b2a7b1
Fix test issue
humivo May 25, 2021
446068b
Add entry intro changelog
humivo May 25, 2021
5a1d73b
Change receiver pattern for rest of receivers
humivo May 25, 2021
fb959cf
Add entry in changelog
humivo May 25, 2021
8c9a9fd
Merge branch 'main' into 3436-ChangeReceiverPatternRest
humivo May 25, 2021
7a601cf
Merge branch 'main' into 3436-ChangeReceiverPatternRest
humivo May 25, 2021
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
Prev Previous commit
Next Next commit
Makes changes to receiver pattern
  • Loading branch information
humivo committed May 24, 2021
commit a16373884f6b77aa22c5aa72d5445060133098c0
2 changes: 2 additions & 0 deletions go.sum
Original file line number Diff line number Diff line change
Expand Up @@ -1383,6 +1383,8 @@ github.com/prometheus/common v0.18.0/go.mod h1:U+gB1OBLb1lF3O42bTCL+FK18tX9Oar16
github.com/prometheus/common v0.23.0/go.mod h1:H6QK/N6XVT42whUeIdI3dp36w49c+/iMDk7UAI2qm7Q=
github.com/prometheus/common v0.24.0 h1:aIycr3wRFxPUq8XlLQlGQ9aNXV3dFi5y62pe/SB262k=
github.com/prometheus/common v0.24.0/go.mod h1:H6QK/N6XVT42whUeIdI3dp36w49c+/iMDk7UAI2qm7Q=
github.com/prometheus/common v0.25.0 h1:IjJYZJCI8HZYtqA3xYwGyDzSCy1r4CA2GRh+4vdOmtE=
github.com/prometheus/common v0.25.0/go.mod h1:H6QK/N6XVT42whUeIdI3dp36w49c+/iMDk7UAI2qm7Q=
github.com/prometheus/exporter-toolkit v0.5.1/go.mod h1:OCkM4805mmisBhLmVFw858QYi3v0wKdY6/UxrT0pZVg=
github.com/prometheus/procfs v0.0.0-20180125133057-cb4147076ac7/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk=
github.com/prometheus/procfs v0.0.0-20181005140218-185b4288413d/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk=
Expand Down
6 changes: 4 additions & 2 deletions receiver/k8sclusterreceiver/receiver.go
Original file line number Diff line number Diff line change
Expand Up @@ -42,6 +42,7 @@ type kubernetesReceiver struct {
logger *zap.Logger
consumer consumer.Metrics
cancel context.CancelFunc
obsrecv *obsreport.Receiver
}

func (kr *kubernetesReceiver) Start(ctx context.Context, host component.Host) error {
Expand Down Expand Up @@ -99,12 +100,12 @@ func (kr *kubernetesReceiver) dispatchMetrics(ctx context.Context) {
now := time.Now()
mds := kr.resourceWatcher.dataCollector.CollectMetricData(now)

c := obsreport.StartMetricsReceiveOp(ctx, kr.config.ID(), transport)
c := kr.obsrecv.StartMetricsReceiveOp(ctx)

_, numPoints := mds.MetricAndDataPointCount()

err := kr.consumer.ConsumeMetrics(c, mds)
obsreport.EndMetricsReceiveOp(c, typeStr, numPoints, err)
kr.obsrecv.EndMetricsReceiveOp(c, typeStr, numPoints, err)
}

// newReceiver creates the Kubernetes cluster receiver with the given configuration.
Expand All @@ -118,5 +119,6 @@ func newReceiver(
logger: logger,
config: config,
consumer: consumer,
obsrecv: obsreport.NewReceiver(obsreport.ReceiverSettings{ReceiverID: config.ID(), Transport: transport}),
}, nil
}
9 changes: 6 additions & 3 deletions receiver/kubeletstatsreceiver/runnable.go
Original file line number Diff line number Diff line change
Expand Up @@ -35,6 +35,8 @@ import (

var _ interval.Runnable = (*runnable)(nil)

const transport = "http"

type runnable struct {
ctx context.Context
receiverID config.ComponentID
Expand All @@ -47,6 +49,7 @@ type runnable struct {
metricGroupsToCollect map[kubelet.MetricGroup]bool
k8sAPIClient kubernetes.Interface
cachedVolumeLabels map[string]map[string]string
obsrecv *obsreport.Receiver
}

func newRunnable(
Expand All @@ -66,6 +69,7 @@ func newRunnable(
metricGroupsToCollect: rOptions.metricGroupsToCollect,
k8sAPIClient: rOptions.k8sAPIClient,
cachedVolumeLabels: make(map[string]map[string]string),
obsrecv: obsreport.NewReceiver(obsreport.ReceiverSettings{ReceiverID: rOptions.id, Transport: transport}),
}
}

Expand All @@ -77,7 +81,6 @@ func (r *runnable) Setup() error {
}

func (r *runnable) Run() error {
const transport = "http"
summary, err := r.statsProvider.StatsSummary()
if err != nil {
r.logger.Error("call to /stats/summary endpoint failed", zap.Error(err))
Expand All @@ -103,14 +106,14 @@ func (r *runnable) Run() error {

var numPoints int
ctx := obsreport.ReceiverContext(r.ctx, r.receiverID, transport)
ctx = obsreport.StartMetricsReceiveOp(ctx, r.receiverID, transport)
ctx = r.obsrecv.StartMetricsReceiveOp(ctx)
err = r.consumer.ConsumeMetrics(ctx, metrics)
if err != nil {
r.logger.Error("ConsumeMetricsData failed", zap.Error(err))
} else {
_, numPoints = metrics.MetricAndDataPointCount()
}
obsreport.EndMetricsReceiveOp(ctx, typeStr, numPoints, err)
r.obsrecv.EndMetricsReceiveOp(ctx, typeStr, numPoints, err)

return nil
}
Expand Down
11 changes: 9 additions & 2 deletions receiver/sapmreceiver/trace_receiver.go
Original file line number Diff line number Diff line change
Expand Up @@ -56,6 +56,8 @@ type sapmReceiver struct {
// This defaultResponse is an optimization so we don't have to proto.Marshal the response
// for every request. At some point this may be removed when there is actual content to return.
defaultResponse []byte

obsrecv *obsreport.Receiver
}

// handleRequest parses an http request containing sapm and passes the trace data to the next consumer
Expand All @@ -71,7 +73,7 @@ func (sr *sapmReceiver) handleRequest(ctx context.Context, req *http.Request) er
transport = "https"
}
ctx = obsreport.ReceiverContext(ctx, sr.config.ID(), transport)
ctx = obsreport.StartTraceDataReceiveOp(ctx, sr.config.ID(), transport)
ctx = sr.obsrecv.StartTraceDataReceiveOp(ctx)

td := jaegertranslator.ProtoBatchesToInternalTraces(sapm.Batches)

Expand All @@ -92,7 +94,7 @@ func (sr *sapmReceiver) handleRequest(ctx context.Context, req *http.Request) er
err = fmt.Errorf("error passing trace data to next consumer: %v", err.Error())
}

obsreport.EndTraceDataReceiveOp(ctx, "protobuf", td.SpanCount(), err)
sr.obsrecv.EndTraceDataReceiveOp(ctx, "protobuf", td.SpanCount(), err)
return err
}

Expand Down Expand Up @@ -208,10 +210,15 @@ func New(
if err != nil {
return nil, fmt.Errorf("failed to marshal default response body for %v receiver: %w", config.ID(), err)
}
transport := "http"
if config.TLSSetting != nil {
transport = "https"
}
return &sapmReceiver{
logger: params.Logger,
config: config,
nextConsumer: nextConsumer,
defaultResponse: defaultResponseBytes,
obsrecv: obsreport.NewReceiver(obsreport.ReceiverSettings{ReceiverID: config.ID(), Transport: transport}),
}, nil
}