Skip to content

Commit

Permalink
Update metrics exporter to otel v0.11.0 (#91)
Browse files Browse the repository at this point in the history
* Update metrics exporter: kv -> label

* Update metrics exporter to otel v0.11.0

* Update metrics example to v0.11.0

* Update dependency on deprecated cloud monitoring package

* Update otel SDK dependency to v0.11.0
  • Loading branch information
liiling committed Sep 7, 2020
1 parent ba72e89 commit 71af267
Show file tree
Hide file tree
Showing 9 changed files with 226 additions and 83 deletions.
4 changes: 2 additions & 2 deletions Makefile
Expand Up @@ -133,8 +133,8 @@ update-dep:
$(MAKE) build
$(MAKE) gotidy

OTEL_VERSION=v0.10.0
OTEL_VERSION=v0.11.0

.PHONY: update-otel
update-otel:
$(MAKE) update-dep MODULE=go.opentelemetry.io/otel VERSION=$(OTEL_VERSION)
$(MAKE) update-dep MODULE=go.opentelemetry.io/otel VERSION=$(OTEL_VERSION)
14 changes: 7 additions & 7 deletions example/metric/example.go
Expand Up @@ -23,8 +23,8 @@ import (

mexporter "github.com/GoogleCloudPlatform/opentelemetry-operations-go/exporter/metric"

"go.opentelemetry.io/otel/api/kv"
"go.opentelemetry.io/otel/api/metric"
"go.opentelemetry.io/otel/label"
"go.opentelemetry.io/otel/sdk/metric/controller/push"
"go.opentelemetry.io/otel/sdk/resource"
)
Expand Down Expand Up @@ -64,8 +64,8 @@ func main() {
// This should be fixed in #29.
resOpt := push.WithResource(
resource.New(
kv.String("instance_id", "abc123"),
kv.String("application", "example-app"),
label.String("instance_id", "abc123"),
label.String("application", "example-app"),
),
)
pusher, err := mexporter.InstallNewPipeline(opts, resOpt)
Expand All @@ -80,13 +80,13 @@ func main() {

// Register counter value
counter := metric.Must(meter).NewInt64Counter("counter-a")
clabels := []kv.KeyValue{kv.Key("key").String("value")}
clabels := []label.KeyValue{label.Key("key").String("value")}
counter.Add(ctx, 100, clabels...)

// Register observer value
olabels := []kv.KeyValue{
kv.String("foo", "Tokyo"),
kv.String("bar", "Sushi"),
olabels := []label.KeyValue{
label.String("foo", "Tokyo"),
label.String("bar", "Sushi"),
}
of := newObservedFloat(12.34)

Expand Down
5 changes: 2 additions & 3 deletions example/metric/go.mod
Expand Up @@ -6,7 +6,6 @@ replace github.com/GoogleCloudPlatform/opentelemetry-operations-go/exporter/metr

require (
github.com/GoogleCloudPlatform/opentelemetry-operations-go/exporter/metric v0.10.0
go.opentelemetry.io/otel v0.10.0
go.opentelemetry.io/otel/sdk v0.10.0
google.golang.org/api v0.25.0 // indirect
go.opentelemetry.io/otel v0.11.0
go.opentelemetry.io/otel/sdk v0.11.0
)
93 changes: 80 additions & 13 deletions example/metric/go.sum

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion exporter/metric/cloudmonitoring.go
Expand Up @@ -26,7 +26,7 @@ import (
export "go.opentelemetry.io/otel/sdk/export/metric"
"golang.org/x/oauth2/google"

monitoring "cloud.google.com/go/monitoring/apiv3"
monitoring "cloud.google.com/go/monitoring/apiv3/v2"
)

const (
Expand Down
15 changes: 10 additions & 5 deletions exporter/metric/go.mod
Expand Up @@ -3,13 +3,18 @@ module github.com/GoogleCloudPlatform/opentelemetry-operations-go/exporter/metri
go 1.14

require (
cloud.google.com/go v0.57.0
cloud.google.com/go v0.65.0
github.com/davecgh/go-spew v1.1.1 // indirect
github.com/golang/protobuf v1.4.2
github.com/google/go-cmp v0.5.2 // indirect
github.com/googleinterns/cloud-operations-api-mock v0.0.0-20200709193332-a1e58c29bdd3
github.com/stretchr/testify v1.6.1
go.opentelemetry.io/otel v0.10.0
go.opentelemetry.io/otel/sdk v0.10.0
go.opentelemetry.io/otel v0.11.0
go.opentelemetry.io/otel/sdk v0.11.0
golang.org/x/oauth2 v0.0.0-20200107190931-bf48bf16ab8d
google.golang.org/api v0.24.0
google.golang.org/genproto v0.0.0-20200605102947-12044bf5ea91
golang.org/x/sys v0.0.0-20200828194041-157a740278f4 // indirect
google.golang.org/api v0.30.0
google.golang.org/genproto v0.0.0-20200831141814-d751682dd103
google.golang.org/grpc v1.31.1 // indirect
gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15 // indirect
)
91 changes: 80 additions & 11 deletions exporter/metric/go.sum

Large diffs are not rendered by default.

7 changes: 5 additions & 2 deletions exporter/metric/metric.go
Expand Up @@ -28,9 +28,10 @@ import (
"go.opentelemetry.io/otel/sdk/metric/aggregator/minmaxsumcount"
"go.opentelemetry.io/otel/sdk/metric/aggregator/sum"
"go.opentelemetry.io/otel/sdk/metric/controller/push"
"go.opentelemetry.io/otel/sdk/metric/processor/basic"
"go.opentelemetry.io/otel/sdk/resource"

monitoring "cloud.google.com/go/monitoring/apiv3"
monitoring "cloud.google.com/go/monitoring/apiv3/v2"
googlepb "github.com/golang/protobuf/ptypes/timestamp"
"google.golang.org/api/option"
googlemetricpb "google.golang.org/genproto/googleapis/api/metric"
Expand Down Expand Up @@ -160,8 +161,10 @@ func NewExportPipeline(opts []Option, popts ...push.Option) (*push.Controller, e
return nil, err
}
period := exporter.metricExporter.o.ReportingInterval
checkpointer := basic.New(selector, exporter)

pusher := push.New(
selector,
checkpointer,
exporter,
append([]push.Option{
push.WithPeriod(period),
Expand Down
78 changes: 39 additions & 39 deletions exporter/metric/metric_test.go
Expand Up @@ -22,9 +22,9 @@ import (

"github.com/googleinterns/cloud-operations-api-mock/cloudmock"
"github.com/stretchr/testify/assert"
"go.opentelemetry.io/otel/api/kv"
"go.opentelemetry.io/otel/api/metric"
apimetric "go.opentelemetry.io/otel/api/metric"
"go.opentelemetry.io/otel/label"
export "go.opentelemetry.io/otel/sdk/export/metric"
"go.opentelemetry.io/otel/sdk/export/metric/metrictest"
aggtest "go.opentelemetry.io/otel/sdk/metric/aggregator/aggregatortest"
Expand Down Expand Up @@ -55,7 +55,7 @@ func TestExportMetrics(t *testing.T) {
lvagg := &lastvalue.New(1)[0]
aggtest.CheckedUpdate(t, lvagg, metric.NewFloat64Number(12.34), &desc)
lvagg.Update(ctx, metric.NewFloat64Number(12.34), &desc)
cps.Add(&desc, lvagg, kv.String("a", "A"), kv.String("b", "B"))
cps.Add(&desc, lvagg, label.String("a", "A"), label.String("b", "B"))

opts := []Option{
WithProjectID("PROJECT_ID_NOT_REAL"),
Expand All @@ -80,7 +80,7 @@ func TestExportCounter(t *testing.T) {

resOpt := push.WithResource(
resource.New(
kv.String("test_id", "abc123"),
label.String("test_id", "abc123"),
),
)

Expand All @@ -102,7 +102,7 @@ func TestExportCounter(t *testing.T) {

// Register counter value
counter := metric.Must(meter).NewInt64Counter("counter-a")
clabels := []kv.KeyValue{kv.Key("key").String("value")}
clabels := []label.KeyValue{label.Key("key").String("value")}
counter.Add(ctx, 100, clabels...)
}

Expand Down Expand Up @@ -149,7 +149,7 @@ func TestRecordToMpb(t *testing.T) {
if err != nil {
t.Errorf("%v", err)
}
cps.Add(&desc, lvagg, kv.String("a", "A"), kv.String("b", "B"))
cps.Add(&desc, lvagg, label.String("a", "A"), label.String("b", "B"))

md := &googlemetricpb.MetricDescriptor{
Name: desc.Name(),
Expand Down Expand Up @@ -199,12 +199,12 @@ func TestResourceToMonitoredResourcepb(t *testing.T) {
// k8s_container
{
resource.New(
kv.String("cloud.provider", "gcp"),
kv.String("cloud.zone", "us-central1-a"),
kv.String("k8s.cluster.name", "opentelemetry-cluster"),
kv.String("k8s.namespace.name", "default"),
kv.String("k8s.pod.name", "opentelemetry-pod-autoconf"),
kv.String("container.name", "opentelemetry"),
label.String("cloud.provider", "gcp"),
label.String("cloud.zone", "us-central1-a"),
label.String("k8s.cluster.name", "opentelemetry-cluster"),
label.String("k8s.namespace.name", "default"),
label.String("k8s.pod.name", "opentelemetry-pod-autoconf"),
label.String("container.name", "opentelemetry"),
),
"k8s_container",
map[string]string{
Expand All @@ -219,10 +219,10 @@ func TestResourceToMonitoredResourcepb(t *testing.T) {
// k8s_node
{
resource.New(
kv.String("cloud.provider", "gcp"),
kv.String("cloud.zone", "us-central1-a"),
kv.String("k8s.cluster.name", "opentelemetry-cluster"),
kv.String("host.name", "opentelemetry-node"),
label.String("cloud.provider", "gcp"),
label.String("cloud.zone", "us-central1-a"),
label.String("k8s.cluster.name", "opentelemetry-cluster"),
label.String("host.name", "opentelemetry-node"),
),
"k8s_node",
map[string]string{
Expand All @@ -235,11 +235,11 @@ func TestResourceToMonitoredResourcepb(t *testing.T) {
// k8s_pod
{
resource.New(
kv.String("cloud.provider", "gcp"),
kv.String("cloud.zone", "us-central1-a"),
kv.String("k8s.cluster.name", "opentelemetry-cluster"),
kv.String("k8s.namespace.name", "default"),
kv.String("k8s.pod.name", "opentelemetry-pod-autoconf"),
label.String("cloud.provider", "gcp"),
label.String("cloud.zone", "us-central1-a"),
label.String("k8s.cluster.name", "opentelemetry-cluster"),
label.String("k8s.namespace.name", "default"),
label.String("k8s.pod.name", "opentelemetry-pod-autoconf"),
),
"k8s_pod",
map[string]string{
Expand All @@ -253,9 +253,9 @@ func TestResourceToMonitoredResourcepb(t *testing.T) {
// k8s_cluster
{
resource.New(
kv.String("cloud.provider", "gcp"),
kv.String("cloud.zone", "us-central1-a"),
kv.String("k8s.cluster.name", "opentelemetry-cluster"),
label.String("cloud.provider", "gcp"),
label.String("cloud.zone", "us-central1-a"),
label.String("k8s.cluster.name", "opentelemetry-cluster"),
),
"k8s_cluster",
map[string]string{
Expand All @@ -267,9 +267,9 @@ func TestResourceToMonitoredResourcepb(t *testing.T) {
// k8s_node missing a field
{
resource.New(
kv.String("cloud.provider", "gcp"),
kv.String("k8s.cluster.name", "opentelemetry-cluster"),
kv.String("host.name", "opentelemetry-node"),
label.String("cloud.provider", "gcp"),
label.String("k8s.cluster.name", "opentelemetry-cluster"),
label.String("host.name", "opentelemetry-node"),
),
"global",
map[string]string{
Expand All @@ -279,12 +279,12 @@ func TestResourceToMonitoredResourcepb(t *testing.T) {
// nonexisting resource types
{
resource.New(
kv.String("cloud.provider", "none"),
kv.String("cloud.zone", "us-central1-a"),
kv.String("k8s.cluster.name", "opentelemetry-cluster"),
kv.String("k8s.namespace.name", "default"),
kv.String("k8s.pod.name", "opentelemetry-pod-autoconf"),
kv.String("container.name", "opentelemetry"),
label.String("cloud.provider", "none"),
label.String("cloud.zone", "us-central1-a"),
label.String("k8s.cluster.name", "opentelemetry-cluster"),
label.String("k8s.namespace.name", "default"),
label.String("k8s.pod.name", "opentelemetry-pod-autoconf"),
label.String("container.name", "opentelemetry"),
),
"global",
map[string]string{
Expand All @@ -294,9 +294,9 @@ func TestResourceToMonitoredResourcepb(t *testing.T) {
// GCE resource fields
{
resource.New(
kv.String("cloud.provider", "gcp"),
kv.String("host.id", "123"),
kv.String("cloud.zone", "us-central1-a"),
label.String("cloud.provider", "gcp"),
label.String("host.id", "123"),
label.String("cloud.zone", "us-central1-a"),
),
"gce_instance",
map[string]string{
Expand All @@ -308,10 +308,10 @@ func TestResourceToMonitoredResourcepb(t *testing.T) {
// AWS resources
{
resource.New(
kv.String("cloud.provider", "aws"),
kv.String("cloud.region", "us-central1-a"),
kv.String("host.id", "123"),
kv.String("cloud.account.id", "fake_account"),
label.String("cloud.provider", "aws"),
label.String("cloud.region", "us-central1-a"),
label.String("host.id", "123"),
label.String("cloud.account.id", "fake_account"),
),
"aws_ec2_instance",
map[string]string{
Expand Down

0 comments on commit 71af267

Please sign in to comment.