Skip to content

Commit bbde90b

Browse files
author
Alex Boten
authored
[receiver/telemetryapi] add telemetry api receiver (aws-observability#345)
This receiver listens for events from the Telemetry API and produces telemetry accordingly. The initial implementation will record a span for platform initialization events. Additional improvements would be to generate metrics for all reporting events. Signed-off-by: Alex Boten <[email protected]>
1 parent 5a8b3e6 commit bbde90b

File tree

19 files changed

+2488
-7
lines changed

19 files changed

+2488
-7
lines changed

collector/VERSION

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
v0.66.0
1+
v0.68.0

collector/go.mod

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,8 @@ go 1.18
44

55
replace github.com/open-telemetry/opentelemetry-lambda/collector/lambdacomponents => ./lambdacomponents
66

7+
replace github.com/open-telemetry/opentelemetry-lambda/collector/receiver/telemetryapireceiver => ./receiver/telemetryapireceiver
8+
79
// fixes ambiguous import error: found package cloud.google.com/go/compute/metadata in multiple modules:
810
// cloud.google.com/go
911
// cloud.google.com/go/compute
@@ -86,6 +88,7 @@ require (
8688
github.com/open-telemetry/opentelemetry-collector-contrib/processor/probabilisticsamplerprocessor v0.68.0 // indirect
8789
github.com/open-telemetry/opentelemetry-collector-contrib/processor/resourceprocessor v0.68.0 // indirect
8890
github.com/open-telemetry/opentelemetry-collector-contrib/processor/spanprocessor v0.68.0 // indirect
91+
github.com/open-telemetry/opentelemetry-lambda/collector/receiver/telemetryapireceiver v0.68.0 // indirect
8992
github.com/pmezard/go-difflib v1.0.0 // indirect
9093
github.com/power-devops/perfstat v0.0.0-20210106213030-5aafc221ea8c // indirect
9194
github.com/prometheus/client_golang v1.14.0 // indirect

collector/internal/lifecycle/manager.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -89,7 +89,7 @@ func NewManager(ctx context.Context, logger *zap.Logger, version string) (contex
8989
}
9090
}()
9191

92-
factories, _ := lambdacomponents.Components()
92+
factories, _ := lambdacomponents.Components(res.ExtensionID)
9393
lm.collector = collector.NewCollector(logger, factories, version)
9494

9595
return ctx, lm

collector/internal/telemetryapi/types.go

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,10 @@ type EventType string
2020
const (
2121
// Platform is used to receive log events emitted by the Lambda platform
2222
Platform EventType = "platform"
23+
// PlatformInitStart is used when function initialization started.
24+
PlatformInitStart EventType = Platform + ".initStart"
25+
// PlatformInitRuntimeDone is used when function initialization ended.
26+
PlatformInitRuntimeDone EventType = Platform + ".initRuntimeDone"
2327
// Function is used to receive log events emitted by the function
2428
Function EventType = "function"
2529
// Extension is used is to receive log events emitted by the extension

collector/lambdacomponents/default.go

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,13 +34,16 @@ import (
3434
"github.com/open-telemetry/opentelemetry-collector-contrib/processor/probabilisticsamplerprocessor"
3535
"github.com/open-telemetry/opentelemetry-collector-contrib/processor/resourceprocessor"
3636
"github.com/open-telemetry/opentelemetry-collector-contrib/processor/spanprocessor"
37+
38+
"github.com/open-telemetry/opentelemetry-lambda/collector/receiver/telemetryapireceiver"
3739
)
3840

39-
func Components() (component.Factories, error) {
41+
func Components(extensionID string) (component.Factories, error) {
4042
var errs []error
4143

4244
receivers, err := receiver.MakeFactoryMap(
4345
otlpreceiver.NewFactory(),
46+
telemetryapireceiver.NewFactory(extensionID),
4447
)
4548
if err != nil {
4649
errs = append(errs, err)

collector/lambdacomponents/go.mod

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ require (
1010
github.com/open-telemetry/opentelemetry-collector-contrib/processor/probabilisticsamplerprocessor v0.68.0
1111
github.com/open-telemetry/opentelemetry-collector-contrib/processor/resourceprocessor v0.68.0
1212
github.com/open-telemetry/opentelemetry-collector-contrib/processor/spanprocessor v0.68.0
13+
github.com/open-telemetry/opentelemetry-lambda/collector/receiver/telemetryapireceiver v0.68.0
1314
go.opentelemetry.io/collector v0.68.0
1415
go.opentelemetry.io/collector/component v0.68.0
1516
go.opentelemetry.io/collector/exporter/loggingexporter v0.68.0
@@ -43,6 +44,7 @@ require (
4344
github.com/go-ole/go-ole v1.2.6 // indirect
4445
github.com/gobwas/glob v0.2.3 // indirect
4546
github.com/gogo/protobuf v1.3.2 // indirect
47+
github.com/golang-collections/go-datastructures v0.0.0-20150211160725-59788d5eb259 // indirect
4648
github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da // indirect
4749
github.com/golang/protobuf v1.5.2 // indirect
4850
github.com/golang/snappy v0.0.4 // indirect
@@ -63,9 +65,10 @@ require (
6365
github.com/open-telemetry/opentelemetry-collector-contrib/pkg/resourcetotelemetry v0.68.0 // indirect
6466
github.com/open-telemetry/opentelemetry-collector-contrib/pkg/translator/prometheus v0.68.0 // indirect
6567
github.com/open-telemetry/opentelemetry-collector-contrib/pkg/translator/prometheusremotewrite v0.68.0 // indirect
68+
github.com/open-telemetry/opentelemetry-lambda/collector v0.67.0 // indirect
6669
github.com/power-devops/perfstat v0.0.0-20210106213030-5aafc221ea8c // indirect
6770
github.com/prometheus/common v0.39.0 // indirect
68-
github.com/prometheus/prometheus v0.40.7 // indirect
71+
github.com/prometheus/prometheus v1.8.2-0.20220117154355-4855a0c067e2 // indirect
6972
github.com/rs/cors v1.8.2 // indirect
7073
github.com/shirou/gopsutil/v3 v3.22.10 // indirect
7174
github.com/tidwall/gjson v1.10.2 // indirect
@@ -101,3 +104,7 @@ require (
101104
// cloud.google.com/go/compute
102105
// Force cloud.google.com/go to be at least v0.107.0, so that the metadata is not present.
103106
replace cloud.google.com/go => cloud.google.com/go v0.107.0
107+
108+
replace github.com/open-telemetry/opentelemetry-lambda/collector => ../
109+
110+
replace github.com/open-telemetry/opentelemetry-lambda/collector/receiver/telemetryapireceiver => ../receiver/telemetryapireceiver

0 commit comments

Comments
 (0)