refactor: remove opentelemetry from observability_deps (#2192) (#2336)

pull/24376/head
Raphael Taylor-Davies 2021-08-18 18:24:05 +01:00 committed by GitHub
parent efb091c693
commit 710f477e35
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
13 changed files with 42 additions and 52 deletions

4
Cargo.lock generated
View File

@ -2094,6 +2094,7 @@ dependencies = [
"dashmap",
"hashbrown",
"observability_deps",
"opentelemetry",
"opentelemetry-prometheus",
"parking_lot",
"prometheus",
@ -2464,7 +2465,6 @@ dependencies = [
name = "observability_deps"
version = "0.1.0"
dependencies = [
"opentelemetry",
"tracing",
]
@ -4719,6 +4719,7 @@ dependencies = [
"http-body",
"itertools 0.10.1",
"observability_deps",
"opentelemetry",
"parking_lot",
"pin-project 1.0.8",
"rand 0.8.4",
@ -4855,6 +4856,7 @@ version = "0.1.0"
dependencies = [
"logfmt",
"observability_deps",
"opentelemetry",
"opentelemetry-jaeger",
"opentelemetry-otlp",
"regex",

View File

@ -17,6 +17,7 @@ edition = "2018"
dashmap = { version = "4.0.1" }
hashbrown = "0.11"
observability_deps = { path = "../observability_deps" }
opentelemetry = "0.15"
opentelemetry-prometheus = "0.8"
parking_lot = "0.11.1"
prometheus = "0.12"

View File

@ -6,7 +6,7 @@ use hashbrown::HashMap;
use crate::KeyValue;
use hashbrown::hash_map::RawEntryMut;
use observability_deps::opentelemetry::labels::{DefaultLabelEncoder, LabelSet};
use opentelemetry::labels::{DefaultLabelEncoder, LabelSet};
/// A `Gauge` allows tracking multiple usize values by label set
///

View File

@ -14,18 +14,16 @@ use opentelemetry_prometheus::PrometheusExporter;
use parking_lot::Mutex;
use prometheus::{Encoder, Registry, TextEncoder};
use observability_deps::{
opentelemetry::metrics::Meter as OTMeter,
opentelemetry::{
metrics::{
registry::RegistryMeterProvider, MeterProvider, ObserverResult, ValueRecorderBuilder,
},
sdk::{
export::metrics::ExportKindSelector,
metrics::{controllers, selectors::simple::Selector},
},
use observability_deps::tracing::*;
use opentelemetry::{
metrics::{
registry::RegistryMeterProvider, Meter as OTMeter, MeterProvider, ObserverResult,
ValueRecorderBuilder,
},
sdk::{
export::metrics::ExportKindSelector,
metrics::{controllers, selectors::simple::Selector},
},
tracing::*,
};
pub use crate::gauge::*;
@ -537,7 +535,7 @@ pub struct TaggedObserverResult<'a, T> {
impl<'a, T> TaggedObserverResult<'a, T>
where
T: Into<observability_deps::opentelemetry::metrics::Number>,
T: Into<opentelemetry::metrics::Number>,
{
fn with_callback<F>(
labels: Vec<KeyValue>,

View File

@ -4,11 +4,9 @@ use std::{
time::{Duration, Instant},
};
use observability_deps::opentelemetry::metrics::{
Counter as OTCounter, ValueRecorder as OTHistogram,
};
use opentelemetry::metrics::{Counter as OTCounter, ValueRecorder as OTHistogram};
pub use observability_deps::opentelemetry::KeyValue;
pub use opentelemetry::KeyValue;
const RED_REQUEST_STATUS_LABEL: &str = "status";

View File

@ -9,7 +9,7 @@ use std::sync::Arc;
use parking_lot::Mutex;
use observability_deps::opentelemetry::metrics::{Meter, ObserverResult};
use opentelemetry::metrics::{Meter, ObserverResult};
type CallbackFunc<T> = Box<dyn Fn(&ObserverResult<T>) + Send + Sync + 'static>;

View File

@ -6,5 +6,4 @@ edition = "2018"
description = "Observability ecosystem dependencies for InfluxDB IOx, to ensure consistent versions and unified updates"
[dependencies] # In alphabetical order
opentelemetry = { version = "0.15", default-features = false, features = ["trace", "metrics", "rt-tokio"] }
tracing = { version = "0.1", features = ["max_level_trace", "release_max_level_debug"] }

View File

@ -1,8 +1,3 @@
//! This crate exists to coordinate versions of `opentelemetry`, `tracing`,
//! `prometheus` and related crates so that we can manage their updates in a
//! single crate.
// Export these crates publicly so we can have a single reference
pub use opentelemetry;
pub use tracing;
pub use tracing::instrument;

View File

@ -33,10 +33,8 @@ use chrono::Utc;
use futures::{self, StreamExt};
use http::header::{CONTENT_ENCODING, CONTENT_TYPE};
use hyper::{http::HeaderValue, Body, Method, Request, Response, StatusCode};
use observability_deps::{
opentelemetry::KeyValue,
tracing::{self, debug, error},
};
use metrics::KeyValue;
use observability_deps::tracing::{self, debug, error};
use routerify::{prelude::*, Middleware, RequestInfo, Router, RouterError, RouterService};
use serde::Deserialize;
use snafu::{OptionExt, ResultExt, Snafu};

View File

@ -13,6 +13,7 @@ futures = "0.3"
http = "0.2"
http-body = "0.4"
itertools = "0.10"
opentelemetry = "0.15"
observability_deps = { path = "../observability_deps" }
parking_lot = "0.11"
pin-project = "1.0"

View File

@ -11,10 +11,8 @@ use tokio::sync::mpsc;
use tokio::task::JoinError;
use tokio_util::sync::CancellationToken;
use observability_deps::{
opentelemetry::sdk::export::trace::{ExportResult, SpanData, SpanExporter},
tracing::{error, info, warn},
};
use observability_deps::tracing::{error, info, warn};
use opentelemetry::sdk::export::trace::{ExportResult, SpanData, SpanExporter};
use crate::ctx::{SpanContext, SpanId, TraceId};
use crate::span::{MetaValue, SpanEvent, SpanStatus};
@ -148,10 +146,10 @@ async fn exporter_loop<T: SpanExporter + 'static>(
impl From<Span> for SpanData {
fn from(span: Span) -> Self {
use observability_deps::opentelemetry::sdk::trace::{EvictedHashMap, EvictedQueue};
use observability_deps::opentelemetry::sdk::InstrumentationLibrary;
use observability_deps::opentelemetry::trace::{SpanId, SpanKind};
use observability_deps::opentelemetry::{Key, KeyValue};
use opentelemetry::sdk::trace::{EvictedHashMap, EvictedQueue};
use opentelemetry::sdk::InstrumentationLibrary;
use opentelemetry::trace::{SpanId, SpanKind};
use opentelemetry::{Key, KeyValue};
let parent_span_id = match span.ctx.parent_span_id {
Some(id) => id.into(),
@ -187,7 +185,7 @@ impl From<Span> for SpanData {
}
}
impl<'a> From<&'a SpanContext> for observability_deps::opentelemetry::trace::SpanContext {
impl<'a> From<&'a SpanContext> for opentelemetry::trace::SpanContext {
fn from(ctx: &'a SpanContext) -> Self {
Self::new(
ctx.trace_id.into(),
@ -199,7 +197,7 @@ impl<'a> From<&'a SpanContext> for observability_deps::opentelemetry::trace::Spa
}
}
impl From<SpanEvent> for observability_deps::opentelemetry::trace::Event {
impl From<SpanEvent> for opentelemetry::trace::Event {
fn from(event: SpanEvent) -> Self {
Self {
name: event.msg,
@ -210,7 +208,7 @@ impl From<SpanEvent> for observability_deps::opentelemetry::trace::Event {
}
}
impl From<SpanStatus> for observability_deps::opentelemetry::trace::StatusCode {
impl From<SpanStatus> for opentelemetry::trace::StatusCode {
fn from(status: SpanStatus) -> Self {
match status {
SpanStatus::Unknown => Self::Unset,
@ -220,19 +218,19 @@ impl From<SpanStatus> for observability_deps::opentelemetry::trace::StatusCode {
}
}
impl From<SpanId> for observability_deps::opentelemetry::trace::SpanId {
impl From<SpanId> for opentelemetry::trace::SpanId {
fn from(id: SpanId) -> Self {
Self::from_u64(id.0.get())
}
}
impl From<TraceId> for observability_deps::opentelemetry::trace::TraceId {
impl From<TraceId> for opentelemetry::trace::TraceId {
fn from(id: TraceId) -> Self {
Self::from_u128(id.0.get())
}
}
impl From<MetaValue> for observability_deps::opentelemetry::Value {
impl From<MetaValue> for opentelemetry::Value {
fn from(v: MetaValue) -> Self {
match v {
MetaValue::String(v) => Self::String(v),
@ -246,7 +244,7 @@ impl From<MetaValue> for observability_deps::opentelemetry::Value {
mod tests {
use super::*;
use chrono::{TimeZone, Utc};
use observability_deps::opentelemetry::{Key, Value};
use opentelemetry::{Key, Value};
use std::time::{Duration, UNIX_EPOCH};
#[test]

View File

@ -10,6 +10,7 @@ description = "(TR)acing and l(OGGING) configuration"
[dependencies]
logfmt = { path = "../logfmt" }
observability_deps = { path = "../observability_deps" }
opentelemetry = "0.15"
opentelemetry-jaeger = { version = "0.14", features = ["tokio"], optional = true }
opentelemetry-otlp = { version = "0.8", optional = true }
thiserror = "1.0.23"
@ -23,5 +24,5 @@ synchronized-writer = "1"
regex = "1"
[features]
jaeger = ["opentelemetry-jaeger"]
otlp = ["opentelemetry-otlp"]
jaeger = ["opentelemetry-jaeger", "opentelemetry/rt-tokio"]
otlp = ["opentelemetry-otlp", "opentelemetry/rt-tokio"]

View File

@ -21,12 +21,11 @@ pub use config::*;
// Re-export tracing_subscriber
pub use tracing_subscriber;
use observability_deps::{
opentelemetry,
opentelemetry::sdk::trace,
opentelemetry::sdk::Resource,
opentelemetry::KeyValue,
tracing::{self, Subscriber},
use observability_deps::tracing::{self, Subscriber};
use opentelemetry::{
self,
sdk::{trace, Resource},
KeyValue,
};
use std::cmp::min;
use std::io;