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

Add new internal in-memory representation and implementations #478

Closed
5 of 6 tasks
tigrannajaryan opened this issue Jan 3, 2020 · 0 comments
Closed
5 of 6 tasks

Comments

@tigrannajaryan
Copy link
Member

tigrannajaryan commented Jan 3, 2020

Internal representation of traces and metrics currently uses OpenCensus Protobuf structs.

We want to convert to OTLP Protobuf-based structs internally. Here is how we can do this gradually:

  • Introduce parallel OTLP-based data types for traces and metrics.
  • Introduce new set of exporter/receiver/processor interfaces which can work with OTLP-based data types.
  • During startup if all components in a pipeline implement the extended OTLP-based interfaces enable otlp mode that uses OTLP-based structs and interfaces for internal data passing.
  • Gradually add support of OTLP-based interfaces to all existing components.
  • Add shims that convert between OC and OTLP-based interfaces and automatically convert the data in the pipeline when mixed components are used.
  • Optionally: retire old OpenCensus based code, assuming that all components in this repo and in contrib repo were converted.
This was referenced Jan 3, 2020
tigrannajaryan pushed a commit to tigrannajaryan/opentelemetry-collector that referenced this issue Feb 5, 2020
This is step one in converting in-memory representation from OC to OTLP.
This change has no effect since introduced types are not used anywhere
in active code.

Issue: open-telemetry#478
tigrannajaryan pushed a commit to tigrannajaryan/opentelemetry-collector that referenced this issue Feb 5, 2020
This is step one in converting in-memory representation from OC to OTLP. This
change has no effect except in tests. The introduced code is not is not reachable.

Issue: open-telemetry#478
tigrannajaryan pushed a commit to tigrannajaryan/opentelemetry-collector that referenced this issue Feb 5, 2020
This is step one in converting in-memory representation from OC to OTLP. This
change has no effect except in tests. The introduced code is not is not reachable.

Issue: open-telemetry#478
tigrannajaryan pushed a commit to tigrannajaryan/opentelemetry-collector that referenced this issue Feb 5, 2020
This is step one in converting in-memory representation from OC to OTLP. This
change has no effect except in tests. The introduced code is not is not reachable.

Issue: open-telemetry#478
tigrannajaryan pushed a commit to tigrannajaryan/opentelemetry-collector that referenced this issue Feb 5, 2020
This is step one in converting in-memory representation from OC to OTLP. This
change has no effect except in tests. The introduced code is not is not reachable.

Issue: open-telemetry#478
tigrannajaryan pushed a commit to tigrannajaryan/opentelemetry-collector that referenced this issue Feb 5, 2020
This is step one in converting in-memory representation from OC to OTLP. This
change has no effect except in tests. The introduced code is not is not reachable.

Issue: open-telemetry#478
tigrannajaryan pushed a commit to tigrannajaryan/opentelemetry-collector that referenced this issue Feb 5, 2020
This is step one in converting in-memory representation from OC to OTLP. This
change has no effect except in tests. The introduced code is not reachable.

Issue: open-telemetry#478
tigrannajaryan pushed a commit to tigrannajaryan/opentelemetry-collector that referenced this issue Feb 6, 2020
This is step one in converting in-memory representation from OC to OTLP. This
change has no effect except in tests. The introduced code is not reachable.

Issue: open-telemetry#478
tigrannajaryan pushed a commit to tigrannajaryan/opentelemetry-collector that referenced this issue Feb 6, 2020
This is step one in converting in-memory representation from OC to OTLP. This
change has no effect except in tests. The introduced code is not reachable.

Issue: open-telemetry#478
tigrannajaryan pushed a commit to tigrannajaryan/opentelemetry-collector that referenced this issue Feb 10, 2020
This is step one in converting in-memory representation from OC to OTLP. This
change has no effect except in tests. The introduced code is not reachable.

Issue: open-telemetry#478
tigrannajaryan pushed a commit to tigrannajaryan/opentelemetry-collector that referenced this issue Feb 10, 2020
This is step one in converting in-memory representation from OC to OTLP. This
change has no effect except in tests. The introduced code is not reachable.

Issue: open-telemetry#478
tigrannajaryan added a commit that referenced this issue Feb 11, 2020
This is step one in converting in-memory representation from OC to OTLP. This
change has no effect except in tests. The introduced code is not reachable.

Issue: #478
tigrannajaryan pushed a commit to tigrannajaryan/opentelemetry-collector that referenced this issue Feb 13, 2020
This implements OC to OTLP protobuf message translation.
The code is currently reachable only from the tests.

We probably need a bit more coverage for this code but I am
submitting this change as is for the sake of keeping the
size of the PR managable for reviewing.

Contributes to open-telemetry#478
tigrannajaryan pushed a commit to tigrannajaryan/opentelemetry-collector that referenced this issue Feb 13, 2020
This implements OC to OTLP protobuf message translation.
The code is currently reachable only from the tests.

We probably need a bit more coverage for this code but I am
submitting this change as is for the sake of keeping the
size of the PR managable for reviewing.

Contributes to open-telemetry#478
tigrannajaryan pushed a commit to tigrannajaryan/opentelemetry-collector that referenced this issue Feb 13, 2020
This implements OC to OTLP protobuf message translation.
The code is currently reachable only from the tests.

We probably need a bit more coverage for this code but I am
submitting this change as is for the sake of keeping the
size of the PR managable for reviewing.

Contributes to open-telemetry#478
tigrannajaryan pushed a commit to tigrannajaryan/opentelemetry-collector that referenced this issue Feb 13, 2020
This implements OC to OTLP protobuf message translation.
The code is currently reachable only from the tests.

We probably need a bit more coverage for this code but I am
submitting this change as is for the sake of keeping the
size of the PR managable for reviewing.

Contributes to open-telemetry#478
tigrannajaryan pushed a commit to tigrannajaryan/opentelemetry-collector that referenced this issue Feb 13, 2020
This implements OC to OTLP protobuf message translation.
The code is currently reachable only from the tests.

We probably need a bit more coverage for this code but I am
submitting this change as is for the sake of keeping the
size of the PR managable for reviewing.

Contributes to open-telemetry#478
tigrannajaryan pushed a commit to tigrannajaryan/opentelemetry-collector that referenced this issue Feb 13, 2020
This implements OC to OTLP protobuf message translation.
The code is currently reachable only from the tests.

We probably need a bit more coverage for this code but I am
submitting this change as is for the sake of keeping the
size of the PR managable for reviewing.

Contributes to open-telemetry#478
tigrannajaryan pushed a commit to tigrannajaryan/opentelemetry-collector that referenced this issue Feb 13, 2020
This implements OC to OTLP protobuf message translation.
The code is currently reachable only from the tests.

We probably need a bit more coverage for this code but I am
submitting this change as is for the sake of keeping the
size of the PR managable for reviewing.

Contributes to open-telemetry#478
tigrannajaryan pushed a commit to tigrannajaryan/opentelemetry-collector that referenced this issue Feb 13, 2020
This implements OC to OTLP protobuf message translation.
The code is currently reachable only from the tests.

We probably need a bit more coverage for this code but I am
submitting this change as is for the sake of keeping the
size of the PR managable for reviewing.

Contributes to open-telemetry#478
tigrannajaryan pushed a commit to tigrannajaryan/opentelemetry-collector that referenced this issue Feb 13, 2020
This implements OC to OTLP protobuf message translation.
The code is currently reachable only from the tests.

We probably need a bit more coverage for this code but I am
submitting this change as is for the sake of keeping the
size of the PR managable for reviewing.

Contributes to open-telemetry#478
tigrannajaryan pushed a commit to tigrannajaryan/opentelemetry-collector that referenced this issue Feb 14, 2020
This implements OC to OTLP protobuf message translation.
The code is currently reachable only from the tests.

We probably need a bit more coverage for this code but I am
submitting this change as is for the sake of keeping the
size of the PR managable for reviewing.

Contributes to open-telemetry#478
tigrannajaryan pushed a commit to tigrannajaryan/opentelemetry-collector that referenced this issue Feb 14, 2020
This implements OC to OTLP protobuf message translation.
The code is currently reachable only from the tests.

We probably need a bit more coverage for this code but I am
submitting this change as is for the sake of keeping the
size of the PR managable for reviewing.

Contributes to open-telemetry#478
tigrannajaryan added a commit that referenced this issue Feb 18, 2020
This implements OC to OTLP protobuf message translation.
The code is currently reachable only from the tests.

We probably need a bit more coverage for this code but I am
submitting this change as is for the sake of keeping the
size of the PR managable for reviewing.

Contributes to #478
@tigrannajaryan tigrannajaryan changed the title Add OTLP-based internal implementations Add new internal in-memory representation and implementations Mar 12, 2020
tigrannajaryan pushed a commit to tigrannajaryan/opentelemetry-collector that referenced this issue Mar 12, 2020
- Added V2 metric factories and interfaces for receivers and exporters.
- Added V2 factories and interfaces for processors.

All changes are uniform with previously introduced initial batch of
V2 factories and interfaces.

Issue: open-telemetry#478
tigrannajaryan pushed a commit to tigrannajaryan/opentelemetry-collector that referenced this issue Mar 12, 2020
- Added V2 metric factories and interfaces for receivers and exporters.
- Added V2 factories and interfaces for processors.

All changes are uniform with previously introduced initial batch of
V2 factories and interfaces.

Issue: open-telemetry#478
tigrannajaryan pushed a commit to tigrannajaryan/opentelemetry-collector that referenced this issue Mar 16, 2020
- Added V2 metric factories and interfaces for receivers and exporters.
- Added V2 factories and interfaces for processors.

All changes are uniform with previously introduced initial batch of
V2 factories and interfaces.

Issue: open-telemetry#478
tigrannajaryan pushed a commit to tigrannajaryan/opentelemetry-collector that referenced this issue Mar 16, 2020
- Added V2 metric factories and interfaces for receivers and exporters.
- Added V2 factories and interfaces for processors.
- Creation methods in V2 factories accept a CreationParams struct to
  allow for easier addition of new parameters in the future without
  breaking the interface.

All changes are uniform with previously introduced initial batch of
V2 factories and interfaces (except introduction of CreationParams).

Issue: open-telemetry#478
tigrannajaryan pushed a commit to tigrannajaryan/opentelemetry-collector that referenced this issue Mar 16, 2020
- Added V2 metric factories and interfaces for receivers and exporters.
- Added V2 factories and interfaces for processors.
- Creation methods in V2 factories accept a CreationParams struct to
  allow for easier addition of new parameters in the future without
  breaking the interface.

All changes are uniform with previously introduced initial batch of
V2 factories and interfaces (except introduction of CreationParams).

Issue: open-telemetry#478
tigrannajaryan added a commit that referenced this issue Mar 16, 2020
- Added V2 metric factories and interfaces for receivers and exporters.
- Added V2 factories and interfaces for processors.
- Creation methods in V2 factories accept a CreationParams struct to
  allow for easier addition of new parameters in the future without
  breaking the interface.

All changes are uniform with previously introduced initial batch of
V2 factories and interfaces (except introduction of CreationParams).

Issue: #478
MovieStoreGuy pushed a commit to atlassian-forks/opentelemetry-collector that referenced this issue Nov 11, 2021
* Test for a panic inside global internal meter instrument's Unbind

* Fix a possible nil-dereference crash

There is a nil dereference crash if we perform some operations in
certain order:

- get a global meter
- create an instrument
- bind it
- set the delegate
- unbind the instrument
- call some recording function on the not-really-bound-anymore
  instrument

Unbind will run the no op run-once initialization routine, so the
follow-up RecordOne call will not run it's initialization
routine. Which RecordOne's initialization routine being skipped, the
delegate to bounded instrument is not set, but the code is still
trying to get a pointer to it and then unconditionally dereference it.

Add an extra check for a nil pointer - if this is true, then Unbind
was first and RecordOne should effectively be a no op.

Co-authored-by: Joshua MacDonald <jmacd@users.noreply.github.com>
hughesjj pushed a commit to hughesjj/opentelemetry-collector that referenced this issue Apr 27, 2023
* Add blacksmith to Rakefile and update deps

* Update RELEASE.md and scripts

* Add puppet-release to .gitlab-ci.yml

* Add github workflow to push puppet release tag

* Update puppet dev-image to ruby:2.6-buster
Troels51 pushed a commit to Troels51/opentelemetry-collector that referenced this issue Jul 5, 2024
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

No branches or pull requests

2 participants