pub struct SkywalkingPlugin {
phase: Phase,
endpoint_addr: String,
service_name: String,
service_instance_name: String,
sample_ratio: f64,
ssl_verify: bool,
timeout: Duration,
client: Arc<OutboundClient>,
}Expand description
SkyWalking tracing node (a start or end half, selected by phase).
Fields§
§phase: Phase§endpoint_addr: StringOAP HTTP base, e.g. http://127.0.0.1:12800 (no trailing slash).
service_name: String§service_instance_name: String§sample_ratio: f64Fraction of new traces to sample, in 0.0..=1.0.
ssl_verify: bool§timeout: Duration§client: Arc<OutboundClient>Shared pooled outbound HTTP client (used by the end node’s export).
Implementations§
Source§impl SkywalkingPlugin
impl SkywalkingPlugin
Sourcepub fn from_config(
config: &HashMap<String, Value>,
resources: &Arc<PluginResources>,
) -> Result<Self, String>
pub fn from_config( config: &HashMap<String, Value>, resources: &Arc<PluginResources>, ) -> Result<Self, String>
Builds the plugin from node config.
Config keys:
| Key | Type | Default | Description |
|---|---|---|---|
phase | string | — (required) | start (before upstream) or end (after upstream). |
endpoint_addr | string | http://127.0.0.1:12800 | SkyWalking OAP HTTP base. |
service_name | string | "featherbit" | Service name reported on the segment / sw8. |
service_instance_name | string | "featherbit Instance Name" | Service instance name. |
sample_ratio | number | 1.0 | Fraction of new traces to sample, in 0.0..=1.0. Requests arriving with a sampled sw8 are always continued. |
ssl_verify | bool | true | Verify the OAP TLS certificate on export. |
timeout | int (seconds) | 3 | Per-export HTTP timeout (end node). |
# before upstream
- id: sw-start
type: skywalking
config: { phase: start, service_name: my-gateway, sample_ratio: 1.0 }
# after upstream
- id: sw-end
type: skywalking
config: { phase: end, endpoint_addr: http://127.0.0.1:12800, service_name: my-gateway }Sourcefn should_sample(&self) -> bool
fn should_sample(&self) -> bool
Sampling decision for a new trace (no inbound sw8).
Trait Implementations§
Source§impl Plugin for SkywalkingPlugin
impl Plugin for SkywalkingPlugin
Source§fn plugin_type(&self) -> &str
fn plugin_type(&self) -> &str
Source§fn reads_response_body(&self) -> bool
fn reads_response_body(&self) -> bool
Whether this configured instance reads
context.response.body. Read moreSource§fn execute<'life0, 'async_trait>(
&'life0 self,
ctx: Context,
) -> Pin<Box<dyn Future<Output = Result<PluginOutput, PluginExecutionError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn execute<'life0, 'async_trait>(
&'life0 self,
ctx: Context,
) -> Pin<Box<dyn Future<Output = Result<PluginOutput, PluginExecutionError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Executes the plugin logic against the request/response context. Read more
Source§fn cache_target(&self) -> Option<CacheTarget>
fn cache_target(&self) -> Option<CacheTarget>
The cache backend this node writes to, if it is a
proxy-cache half. Read moreAuto Trait Implementations§
impl !RefUnwindSafe for SkywalkingPlugin
impl !UnwindSafe for SkywalkingPlugin
impl Freeze for SkywalkingPlugin
impl Send for SkywalkingPlugin
impl Sync for SkywalkingPlugin
impl Unpin for SkywalkingPlugin
impl UnsafeUnpin for SkywalkingPlugin
Blanket Implementations§
§impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
§impl<'a, T, E> AsTaggedImplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedImplicit<'a, E> for Twhere
T: 'a,
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more