fix(router_env): fix opentelemetry traces for router_env (#201)

Co-authored-by: Nishant Joshi <nishant.joshi@juspay.in>
This commit is contained in:
Sampras Lopes
2023-01-07 17:43:19 +05:30
committed by GitHub
parent c3368d9f8b
commit 6a0d183e7b
53 changed files with 100 additions and 87 deletions

2
Cargo.lock generated
View File

@ -2817,6 +2817,8 @@ dependencies = [
"tracing",
"tracing-actix-web",
"tracing-appender",
"tracing-attributes",
"tracing-opentelemetry",
"tracing-subscriber",
"vergen",
]

View File

@ -21,7 +21,7 @@ use fred::{
},
};
use futures::StreamExt;
use router_env::{logger, tracing, tracing::instrument};
use router_env::{instrument, logger, tracing};
use crate::{
errors,

View File

@ -2,7 +2,7 @@ pub mod types;
use actix_web::{delete, get, post, web, HttpRequest, HttpResponse};
use error_stack::report;
use router_env::{tracing, tracing::instrument};
use router_env::{instrument, tracing};
use crate::{
compatibility::{stripe::errors, wrap},

View File

@ -3,7 +3,7 @@ pub mod types;
use actix_web::{get, post, web, HttpRequest, HttpResponse};
use api_models::payments as payment_types;
use error_stack::report;
use router_env::{tracing, tracing::instrument};
use router_env::{instrument, tracing};
use crate::{
compatibility::{stripe::errors, wrap},

View File

@ -1,7 +1,7 @@
pub mod types;
use actix_web::{get, post, web, HttpRequest, HttpResponse};
use router_env::{tracing, tracing::instrument};
use router_env::{instrument, tracing};
use crate::{
compatibility::{stripe::errors, wrap},

View File

@ -3,7 +3,7 @@ pub mod types;
use actix_web::{get, post, web, HttpRequest, HttpResponse};
use api_models::payments as payment_types;
use error_stack::report;
use router_env::{tracing, tracing::instrument};
use router_env::{instrument, tracing};
use crate::{
compatibility::{stripe::errors, wrap},

View File

@ -2,7 +2,7 @@ use std::future::Future;
use actix_web::{HttpRequest, HttpResponse, Responder};
use error_stack::report;
use router_env::{tracing, tracing::instrument};
use router_env::{instrument, tracing};
use serde::Serialize;
use crate::{

View File

@ -4,7 +4,7 @@ use std::fmt::Debug;
use bytes::Bytes;
use error_stack::{IntoReport, ResultExt};
use router_env::{tracing, tracing::instrument};
use router_env::{instrument, tracing};
use self::transformers as adyen;
use crate::{

View File

@ -4,7 +4,7 @@ use std::{collections::HashMap, fmt::Debug};
use bytes::Bytes;
use error_stack::{IntoReport, ResultExt};
use router_env::{tracing, tracing::instrument};
use router_env::{instrument, tracing};
use self::transformers as stripe;
use crate::{

View File

@ -1,6 +1,6 @@
use common_utils::ext_traits::ValueExt;
use error_stack::ResultExt;
use router_env::{tracing, tracing::instrument};
use router_env::{instrument, tracing};
use crate::{
core::{

View File

@ -1,5 +1,5 @@
use error_stack::{report, ResultExt};
use router_env::{logger, tracing, tracing::instrument};
use router_env::{instrument, logger, tracing};
use storage_models::enums as storage_enums;
use super::payments::helpers;

View File

@ -2,7 +2,7 @@ use std::collections;
use common_utils::{consts, generate_id};
use error_stack::{report, ResultExt};
use router_env::{tracing, tracing::instrument};
use router_env::{instrument, tracing};
use crate::{
configs::settings,

View File

@ -8,7 +8,7 @@ use std::{fmt::Debug, marker::PhantomData, time::Instant};
use common_utils::ext_traits::AsyncExt;
use error_stack::{IntoReport, ResultExt};
use futures::future::join_all;
use router_env::{tracing, tracing::instrument};
use router_env::{instrument, tracing};
use time;
pub use self::operations::{

View File

@ -1,7 +1,7 @@
pub mod validator;
use error_stack::{report, IntoReport, ResultExt};
use router_env::tracing::{self, instrument};
use router_env::{instrument, tracing};
use uuid::Uuid;
use crate::{

View File

@ -1,5 +1,5 @@
use error_stack::report;
use router_env::{tracing, tracing::instrument};
use router_env::{instrument, tracing};
use time::PrimitiveDateTime;
use crate::{

View File

@ -1,7 +1,7 @@
use std::marker::PhantomData;
use error_stack::ResultExt;
use router_env::tracing::{self, instrument};
use router_env::{instrument, tracing};
use super::payments::{helpers, PaymentAddress};
use crate::{

View File

@ -3,7 +3,7 @@ pub mod utils;
use error_stack::{IntoReport, ResultExt};
use masking::ExposeInterface;
use router_env::tracing::{self, instrument};
use router_env::{instrument, tracing};
use crate::{
consts,

View File

@ -1,8 +1,5 @@
use actix_web::{web, HttpRequest, HttpResponse};
use router_env::{
tracing::{self, instrument},
Flow,
};
use router_env::{instrument, tracing, Flow};
use super::app::AppState;
use crate::{core::admin::*, services::api, types::api::admin};

View File

@ -1,8 +1,5 @@
use actix_web::{web, HttpRequest, HttpResponse, Responder};
use router_env::{
tracing::{self, instrument},
Flow,
};
use router_env::{instrument, tracing, Flow};
use super::app::AppState;
use crate::{

View File

@ -1,8 +1,5 @@
use actix_web::{web, HttpRequest, HttpResponse};
use router_env::{
tracing::{self, instrument},
Flow,
};
use router_env::{instrument, tracing, Flow};
use super::AppState;
use crate::{core::payments::helpers, services::api, types::api::customers};

View File

@ -1,7 +1,4 @@
use router_env::{
logger,
tracing::{self, instrument},
};
use router_env::{instrument, logger, tracing};
use crate::routes::metrics;

View File

@ -1,8 +1,5 @@
use actix_web::{web, HttpRequest, HttpResponse};
use router_env::{
tracing::{self, instrument},
Flow,
};
use router_env::{instrument, tracing, Flow};
use super::app::AppState;
use crate::{core::mandate, services::api, types::api::mandates};

View File

@ -1,8 +1,5 @@
use actix_web::{web, HttpRequest, HttpResponse};
use router_env::{
tracing::{self, instrument},
Flow,
};
use router_env::{instrument, tracing, Flow};
use super::app::AppState;
use crate::{

View File

@ -2,10 +2,7 @@ use std::borrow::Cow;
use actix_web::{web, Responder};
use error_stack::report;
use router_env::{
tracing::{self, instrument},
Flow,
};
use router_env::{instrument, tracing, Flow};
use crate::{
self as app,

View File

@ -2,10 +2,7 @@ use actix_web::{
body::{BoxBody, MessageBody},
HttpResponse, Responder,
};
use router_env::{
tracing::{self, instrument},
Flow,
};
use router_env::{instrument, tracing, Flow};
#[instrument(skip_all, fields(flow = ?Flow::PayoutsCreate))]
// #[post("/create")]

View File

@ -1,8 +1,5 @@
use actix_web::{web, HttpRequest, HttpResponse};
use router_env::{
tracing::{self, instrument},
Flow,
};
use router_env::{instrument, tracing, Flow};
use super::app::AppState;
use crate::{core::refunds::*, services::api, types::api::refunds};

View File

@ -1,8 +1,5 @@
use actix_web::{web, HttpRequest, Responder};
use router_env::{
tracing::{self, instrument},
Flow,
};
use router_env::{instrument, tracing, Flow};
use super::app::AppState;
use crate::{core::webhooks, services::api};

View File

@ -8,7 +8,7 @@ use std::{
use error_stack::ResultExt;
use futures::future;
use redis_interface::{RedisConnectionPool, RedisEntryId};
use router_env::{tracing, tracing::instrument};
use router_env::{instrument, tracing};
use time::PrimitiveDateTime;
use uuid::Uuid;

View File

@ -1,7 +1,7 @@
use std::sync::Arc;
use error_stack::{report, ResultExt};
use router_env::{tracing, tracing::instrument};
use router_env::{instrument, tracing};
use time::Duration;
use super::metrics;

View File

@ -7,10 +7,7 @@ use actix_web::{body, HttpRequest, HttpResponse, Responder};
use bytes::Bytes;
use error_stack::{report, IntoReport, Report, ResultExt};
use masking::ExposeOptionInterface;
use router_env::{
tracing::{self, instrument},
Tag,
};
use router_env::{instrument, tracing, Tag};
use serde::Serialize;
use self::request::{ContentType, HeaderExt, RequestBuilderExt};

View File

@ -2,7 +2,7 @@ use std::{collections, str::FromStr};
use error_stack::{IntoReport, ResultExt};
use masking::Secret;
use router_env::{tracing, tracing::instrument};
use router_env::{instrument, tracing};
use serde::{Deserialize, Serialize};
use crate::{

View File

@ -1,7 +1,7 @@
use async_bb8_diesel::AsyncRunQueryDsl;
use diesel::{associations::HasTable, ExpressionMethods, QueryDsl};
use error_stack::{IntoReport, ResultExt};
use router_env::tracing::{self, instrument};
use router_env::{instrument, tracing};
pub use storage_models::{
errors,
payment_intent::{

View File

@ -21,10 +21,12 @@ serde_path_to_error = "0.1.8"
strum = { version = "0.24.1", features = ["derive"] }
time = { version = "0.3.17", default-features = false, features = ["formatting"] }
tokio = { version = "1.23.0" }
tracing = "0.1.36"
tracing = { version = "0.1.36" }
tracing-actix-web = { version = "0.6.1", features = ["opentelemetry_0_18"], optional = true }
tracing-appender = "0.2.2"
tracing-appender = { version = "0.2.2" }
tracing-attributes = "=0.1.22"
tracing-subscriber = { version = "0.3.15", default-features = true, features = ["json", "env-filter", "registry"] }
tracing-opentelemetry = { version = "0.18.0" }
vergen = { version = "7.4.3", optional = true }
[dev-dependencies]

View File

@ -2,7 +2,8 @@
//! Logger of the system.
//!
pub use tracing::{debug, error, event as log, info, instrument, warn};
pub use tracing::{debug, error, event as log, info, warn};
pub use tracing_attributes::instrument;
pub mod config;
pub use crate::config::Config;

View File

@ -16,9 +16,7 @@ use opentelemetry::{
};
use opentelemetry_otlp::WithExportConfig;
use tracing_appender::non_blocking::WorkerGuard;
use tracing_subscriber::{
filter, fmt, layer::SubscriberExt, util::SubscriberInitExt, EnvFilter, Layer,
};
use tracing_subscriber::{filter, fmt, prelude::*, util::SubscriberInitExt, EnvFilter, Layer};
use crate::{config, FormattingLayer, Level, StorageSubscription};
@ -72,8 +70,14 @@ pub fn setup<Str: AsRef<str>>(
None
};
let telemetry_layer = match telemetry {
Some(Ok(ref tracer)) => Some(tracing_opentelemetry::layer().with_tracer(tracer.clone())),
_ => None,
};
// Use 'RUST_LOG' environment variable will override the config settings
let subscriber = tracing_subscriber::registry()
.with(telemetry_layer)
.with(StorageSubscription)
.with(file_writer)
.with(

View File

@ -1,5 +1,5 @@
use diesel::{associations::HasTable, BoolExpressionMethods, ExpressionMethods};
use router_env::{tracing, tracing::instrument};
use router_env::{instrument, tracing};
use super::generics;
use crate::{

View File

@ -1,5 +1,5 @@
use diesel::associations::HasTable;
use router_env::tracing::{self, instrument};
use router_env::{instrument, tracing};
use super::generics;
use crate::{

View File

@ -1,5 +1,5 @@
use diesel::{associations::HasTable, BoolExpressionMethods, ExpressionMethods};
use router_env::{tracing, tracing::instrument};
use router_env::{instrument, tracing};
use super::generics;
use crate::{

View File

@ -1,5 +1,5 @@
use diesel::{associations::HasTable, BoolExpressionMethods, ExpressionMethods};
use router_env::{tracing, tracing::instrument};
use router_env::{instrument, tracing};
use super::generics;
use crate::{

View File

@ -1,4 +1,4 @@
use router_env::tracing::{self, instrument};
use router_env::{instrument, tracing};
use super::generics;
use crate::{

View File

@ -19,7 +19,7 @@ use diesel::{
Insertable, QuerySource, Table,
};
use error_stack::{report, IntoReport, ResultExt};
use router_env::{logger, tracing, tracing::instrument};
use router_env::{instrument, logger, tracing};
use crate::{errors, PgPooledConn, StorageResult};

View File

@ -1,5 +1,5 @@
use diesel::{associations::HasTable, ExpressionMethods};
use router_env::{tracing, tracing::instrument};
use router_env::{instrument, tracing};
use super::generics;
use crate::{

View File

@ -1,6 +1,6 @@
use diesel::{associations::HasTable, BoolExpressionMethods, ExpressionMethods};
use error_stack::report;
use router_env::tracing::{self, instrument};
use router_env::{instrument, tracing};
use super::generics;
use crate::{errors, mandate::*, schema::mandate::dsl, PgPooledConn, StorageResult};

View File

@ -1,5 +1,5 @@
use diesel::{associations::HasTable, ExpressionMethods};
use router_env::tracing::{self, instrument};
use router_env::{instrument, tracing};
use super::generics;
use crate::{

View File

@ -1,5 +1,5 @@
use diesel::{associations::HasTable, BoolExpressionMethods, ExpressionMethods};
use router_env::tracing::{self, instrument};
use router_env::{instrument, tracing};
use super::generics;
use crate::{

View File

@ -1,6 +1,6 @@
use diesel::{associations::HasTable, BoolExpressionMethods, ExpressionMethods};
use error_stack::IntoReport;
use router_env::tracing::{self, instrument};
use router_env::{instrument, tracing};
use super::generics;
use crate::{

View File

@ -1,5 +1,5 @@
use diesel::{associations::HasTable, BoolExpressionMethods, ExpressionMethods};
use router_env::tracing::{self, instrument};
use router_env::{instrument, tracing};
use super::generics;
use crate::{

View File

@ -1,5 +1,5 @@
use diesel::{associations::HasTable, BoolExpressionMethods, ExpressionMethods};
use router_env::tracing::{self, instrument};
use router_env::{instrument, tracing};
use super::generics;
use crate::{

View File

@ -1,5 +1,5 @@
use diesel::{associations::HasTable, BoolExpressionMethods, ExpressionMethods};
use router_env::tracing::{self, instrument};
use router_env::{instrument, tracing};
use time::PrimitiveDateTime;
use super::generics;

View File

@ -1,5 +1,5 @@
use diesel::{associations::HasTable, BoolExpressionMethods, ExpressionMethods};
use router_env::{tracing, tracing::instrument};
use router_env::{instrument, tracing};
use super::generics;
use crate::{

View File

@ -1,5 +1,5 @@
use diesel::{associations::HasTable, ExpressionMethods};
use router_env::{tracing, tracing::instrument};
use router_env::{instrument, tracing};
use super::generics;
use crate::{

View File

@ -1,5 +1,5 @@
use diesel::{associations::HasTable, ExpressionMethods};
use router_env::tracing::{self, instrument};
use router_env::{instrument, tracing};
use super::generics;
use crate::{

View File

@ -4,6 +4,8 @@ volumes:
cargo_cache:
pg_data:
cargo_build_cache:
p_cargo_build_cache:
c_cargo_build_cache:
networks:
router_net:
@ -98,6 +100,41 @@ services:
start_period: 20s
timeout: 10s
orca-producer:
image: rust:1.65
command: cargo run --bin scheduler -- -f ./config/docker_compose.toml
working_dir: /app
networks:
- router_net
volumes:
- ./:/app
- cargo_cache:/cargo_cache
- p_cargo_build_cache:/cargo_build_cache
environment:
- CARGO_TARGET_DIR=/cargo_build_cache
- OTEL_EXPORTER_OTLP_ENDPOINT=https://otel-collector:4317
- SCHEDULER_FLOW=producer
labels:
logs: "promtail"
orca-consumer:
image: rust:1.65
command: cargo run --bin scheduler -- -f ./config/docker_compose.toml
working_dir: /app
networks:
- router_net
volumes:
- ./:/app
- cargo_cache:/cargo_cache
- c_cargo_build_cache:/cargo_build_cache
environment:
- CARGO_TARGET_DIR=/cargo_build_cache
- OTEL_EXPORTER_OTLP_ENDPOINT=https://otel-collector:4317
- SCHEDULER_FLOW=consumer
labels:
logs: "promtail"
redis-queue:
image: redis:7
deploy: