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

Use google cloud collector exporter, and feature-gate pdata-direct metrics exporter. #7177

Merged

Conversation

dashpole
Copy link
Contributor

@dashpole dashpole commented Jan 14, 2022

Description:
Fixes #7132

This changes the googlecloud exporter to use the newly developed GCP collector exporter in the github.com/GoogleCloudPlatform/opentelemetry-operations-go repository. The googlecloud collector exporter lives in that repository so that e2e tests can be run against live google cloud APIs at presubmit time.

Changes are gated by the exporter.googlecloud.OTLPDirect feature-gate. This feature will initially be alpha while we iron out any bugs we find.

Factory changes and feature-gating

The feature-gate applies to the factory so that the feature-gate also changes which config structure is valid. There are breaking changes across client options. The feature gate also changes which implementation of the metrics and traces exporter is used.

Trace exporter

The only difference between the new vs old trace exporter is configuration (see feature-gate section above); it is unchanged otherwise.

Metric exporter

The metrics exporter is completely re-written, and converts directly from pdata to google cloud's types. Since this is a new implementation, leave the previous implementation in-place in this repository, but prefix files with legacy as a reminder that they should be removed when the feature is graduated to GA. The new metrics implementation is only used when the feature gate is enabled.

Dependencies

The collector exporter is designed specifically to minimize its dependencies on collector-core. It does this by not implementing the component interfaces (e.g. NewFactory()), and does not depend on component types (e.g. component.ExporterCreateSettings). Thus, it must define its own Config, which is the portion of the overall Config which does not include component types. The remaining code here opentelemetry-collector-contrib is just a wrapper around the Config of the GCP collector exporter which adds exporterhelper pieces, and implements the required collector interfaces.

The only dependencies the GCP collector exporter has on collector core are:

  • go.opentelemetry.io/collector/model/pdata
  • go.opentelemetry.io/collector/model/semconv/v1.8.0

@github-actions
Copy link
Contributor

This PR was marked stale due to lack of activity. It will be closed in 14 days.

@dashpole
Copy link
Contributor Author

Discussed at the sig meeting today. We can move forward with this before pdata is 1.0

@dashpole dashpole force-pushed the rewrite-googlecloud-exporter branch 8 times, most recently from 0d7316e to c57ad0d Compare February 18, 2022 18:47
@dashpole dashpole marked this pull request as ready for review February 18, 2022 18:47
@dashpole dashpole requested a review from a team February 18, 2022 18:47
@dashpole
Copy link
Contributor Author

This is ready for review.

@dashpole dashpole force-pushed the rewrite-googlecloud-exporter branch 4 times, most recently from 9569652 to b4a344a Compare February 28, 2022 14:33
@dashpole
Copy link
Contributor Author

@djaglowski @jpkrohling let me know if there is anything I can do to help make reviews easier.

@jpkrohling
Copy link
Member

@open-telemetry/collector-contrib-approvers, could one of you review this one? I don't think I can review this over the next few days.

exporter/googlecloudexporter/README.md Outdated Show resolved Hide resolved
@mx-psi
Copy link
Member

mx-psi commented Mar 3, 2022

There are a bunch of conflicts which you should fix, but otherwise LGTM

@dashpole dashpole force-pushed the rewrite-googlecloud-exporter branch from b4a344a to 8e3a6a4 Compare March 3, 2022 13:39
@dashpole dashpole requested a review from dmitryax as a code owner March 3, 2022 13:39
@bogdandrutu bogdandrutu merged commit 65702a9 into open-telemetry:main Mar 4, 2022
@dashpole dashpole deleted the rewrite-googlecloud-exporter branch March 7, 2022 21:07
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

[exporter/googlecloud] Re-write exporter to remove opencensus translation and add integration testing
6 participants