#[non_exhaustive]pub struct Service {
pub key_attributes: HashMap<String, String>,
pub attribute_maps: Option<Vec<HashMap<String, String>>>,
pub service_groups: Option<Vec<ServiceGroup>>,
pub metric_references: Vec<MetricReference>,
pub log_group_references: Option<Vec<HashMap<String, String>>>,
}
Expand description
This structure contains information about one of your services that was discovered by Application Signals.
Fields (Non-exhaustive)§
This struct is marked as non-exhaustive
Struct { .. }
syntax; cannot be matched against without a wildcard ..
; and struct update syntax will not work.key_attributes: HashMap<String, String>
This is a string-to-string map. It can include the following fields.
-
Type
designates the type of object this is. -
ResourceType
specifies the type of the resource. This field is used only when the value of theType
field isResource
orAWS::Resource
. -
Name
specifies the name of the object. This is used only if the value of theType
field isService
,RemoteService
, orAWS::Service
. -
Identifier
identifies the resource objects of this resource. This is used only if the value of theType
field isResource
orAWS::Resource
. -
Environment
specifies the location where this object is hosted, or what it belongs to.
attribute_maps: Option<Vec<HashMap<String, String>>>
This structure contains one or more string-to-string maps that help identify this service. It can include platform attributes, application attributes, and telemetry attributes.
Platform attributes contain information the service's platform.
-
PlatformType
defines the hosted-in platform. -
EKS.Cluster
is the name of the Amazon EKS cluster. -
K8s.Cluster
is the name of the self-hosted Kubernetes cluster. -
K8s.Namespace
is the name of the Kubernetes namespace in either Amazon EKS or Kubernetes clusters. -
K8s.Workload
is the name of the Kubernetes workload in either Amazon EKS or Kubernetes clusters. -
K8s.Node
is the name of the Kubernetes node in either Amazon EKS or Kubernetes clusters. -
K8s.Pod
is the name of the Kubernetes pod in either Amazon EKS or Kubernetes clusters. -
EC2.AutoScalingGroup
is the name of the Amazon EC2 Auto Scaling group. -
EC2.InstanceId
is the ID of the Amazon EC2 instance. -
Host
is the name of the host, for all platform types.
Application attributes contain information about the application.
-
AWS.Application
is the application's name in Amazon Web Services Service Catalog AppRegistry. -
AWS.Application.ARN
is the application's ARN in Amazon Web Services Service Catalog AppRegistry.
Telemetry attributes contain telemetry information.
-
Telemetry.SDK
is the fingerprint of the OpenTelemetry SDK version for instrumented services. -
Telemetry.Agent
is the fingerprint of the agent used to collect and send telemetry data. -
Telemetry.Source
Specifies the point of application where the telemetry was collected or specifies what was used for the source of telemetry data.
service_groups: Option<Vec<ServiceGroup>>
An array of service groups that this service belongs to, based on the configured grouping attributes.
metric_references: Vec<MetricReference>
An array of structures that each contain information about one metric associated with this service.
log_group_references: Option<Vec<HashMap<String, String>>>
An array of string-to-string maps that each contain information about one log group associated with this service. Each string-to-string map includes the following fields:
-
"Type": "AWS::Resource"
-
"ResourceType": "AWS::Logs::LogGroup"
-
"Identifier": "name-of-log-group"
Implementations§
Source§impl Service
impl Service
Sourcepub fn key_attributes(&self) -> &HashMap<String, String>
pub fn key_attributes(&self) -> &HashMap<String, String>
This is a string-to-string map. It can include the following fields.
-
Type
designates the type of object this is. -
ResourceType
specifies the type of the resource. This field is used only when the value of theType
field isResource
orAWS::Resource
. -
Name
specifies the name of the object. This is used only if the value of theType
field isService
,RemoteService
, orAWS::Service
. -
Identifier
identifies the resource objects of this resource. This is used only if the value of theType
field isResource
orAWS::Resource
. -
Environment
specifies the location where this object is hosted, or what it belongs to.
Sourcepub fn attribute_maps(&self) -> &[HashMap<String, String>]
pub fn attribute_maps(&self) -> &[HashMap<String, String>]
This structure contains one or more string-to-string maps that help identify this service. It can include platform attributes, application attributes, and telemetry attributes.
Platform attributes contain information the service's platform.
-
PlatformType
defines the hosted-in platform. -
EKS.Cluster
is the name of the Amazon EKS cluster. -
K8s.Cluster
is the name of the self-hosted Kubernetes cluster. -
K8s.Namespace
is the name of the Kubernetes namespace in either Amazon EKS or Kubernetes clusters. -
K8s.Workload
is the name of the Kubernetes workload in either Amazon EKS or Kubernetes clusters. -
K8s.Node
is the name of the Kubernetes node in either Amazon EKS or Kubernetes clusters. -
K8s.Pod
is the name of the Kubernetes pod in either Amazon EKS or Kubernetes clusters. -
EC2.AutoScalingGroup
is the name of the Amazon EC2 Auto Scaling group. -
EC2.InstanceId
is the ID of the Amazon EC2 instance. -
Host
is the name of the host, for all platform types.
Application attributes contain information about the application.
-
AWS.Application
is the application's name in Amazon Web Services Service Catalog AppRegistry. -
AWS.Application.ARN
is the application's ARN in Amazon Web Services Service Catalog AppRegistry.
Telemetry attributes contain telemetry information.
-
Telemetry.SDK
is the fingerprint of the OpenTelemetry SDK version for instrumented services. -
Telemetry.Agent
is the fingerprint of the agent used to collect and send telemetry data. -
Telemetry.Source
Specifies the point of application where the telemetry was collected or specifies what was used for the source of telemetry data.
If no value was sent for this field, a default will be set. If you want to determine if no value was sent, use .attribute_maps.is_none()
.
Sourcepub fn service_groups(&self) -> &[ServiceGroup]
pub fn service_groups(&self) -> &[ServiceGroup]
An array of service groups that this service belongs to, based on the configured grouping attributes.
If no value was sent for this field, a default will be set. If you want to determine if no value was sent, use .service_groups.is_none()
.
Sourcepub fn metric_references(&self) -> &[MetricReference]
pub fn metric_references(&self) -> &[MetricReference]
An array of structures that each contain information about one metric associated with this service.
Sourcepub fn log_group_references(&self) -> &[HashMap<String, String>]
pub fn log_group_references(&self) -> &[HashMap<String, String>]
An array of string-to-string maps that each contain information about one log group associated with this service. Each string-to-string map includes the following fields:
-
"Type": "AWS::Resource"
-
"ResourceType": "AWS::Logs::LogGroup"
-
"Identifier": "name-of-log-group"
If no value was sent for this field, a default will be set. If you want to determine if no value was sent, use .log_group_references.is_none()
.
Trait Implementations§
impl StructuralPartialEq for Service
Auto Trait Implementations§
impl Freeze for Service
impl RefUnwindSafe for Service
impl Send for Service
impl Sync for Service
impl Unpin for Service
impl UnwindSafe for Service
Blanket Implementations§
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
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§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>
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>
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 moreSource§impl<T> Paint for Twhere
T: ?Sized,
impl<T> Paint for Twhere
T: ?Sized,
Source§fn fg(&self, value: Color) -> Painted<&T>
fn fg(&self, value: Color) -> Painted<&T>
Returns a styled value derived from self
with the foreground set to
value
.
This method should be used rarely. Instead, prefer to use color-specific
builder methods like red()
and
green()
, which have the same functionality but are
pithier.
§Example
Set foreground color to white using fg()
:
use yansi::{Paint, Color};
painted.fg(Color::White);
Set foreground color to white using white()
.
use yansi::Paint;
painted.white();
Source§fn bright_black(&self) -> Painted<&T>
fn bright_black(&self) -> Painted<&T>
Source§fn bright_red(&self) -> Painted<&T>
fn bright_red(&self) -> Painted<&T>
Source§fn bright_green(&self) -> Painted<&T>
fn bright_green(&self) -> Painted<&T>
Source§fn bright_yellow(&self) -> Painted<&T>
fn bright_yellow(&self) -> Painted<&T>
Source§fn bright_blue(&self) -> Painted<&T>
fn bright_blue(&self) -> Painted<&T>
Source§fn bright_magenta(&self) -> Painted<&T>
fn bright_magenta(&self) -> Painted<&T>
Source§fn bright_cyan(&self) -> Painted<&T>
fn bright_cyan(&self) -> Painted<&T>
Source§fn bright_white(&self) -> Painted<&T>
fn bright_white(&self) -> Painted<&T>
Source§fn bg(&self, value: Color) -> Painted<&T>
fn bg(&self, value: Color) -> Painted<&T>
Returns a styled value derived from self
with the background set to
value
.
This method should be used rarely. Instead, prefer to use color-specific
builder methods like on_red()
and
on_green()
, which have the same functionality but
are pithier.
§Example
Set background color to red using fg()
:
use yansi::{Paint, Color};
painted.bg(Color::Red);
Set background color to red using on_red()
.
use yansi::Paint;
painted.on_red();
Source§fn on_primary(&self) -> Painted<&T>
fn on_primary(&self) -> Painted<&T>
Source§fn on_magenta(&self) -> Painted<&T>
fn on_magenta(&self) -> Painted<&T>
Source§fn on_bright_black(&self) -> Painted<&T>
fn on_bright_black(&self) -> Painted<&T>
Source§fn on_bright_red(&self) -> Painted<&T>
fn on_bright_red(&self) -> Painted<&T>
Source§fn on_bright_green(&self) -> Painted<&T>
fn on_bright_green(&self) -> Painted<&T>
Source§fn on_bright_yellow(&self) -> Painted<&T>
fn on_bright_yellow(&self) -> Painted<&T>
Source§fn on_bright_blue(&self) -> Painted<&T>
fn on_bright_blue(&self) -> Painted<&T>
Source§fn on_bright_magenta(&self) -> Painted<&T>
fn on_bright_magenta(&self) -> Painted<&T>
Source§fn on_bright_cyan(&self) -> Painted<&T>
fn on_bright_cyan(&self) -> Painted<&T>
Source§fn on_bright_white(&self) -> Painted<&T>
fn on_bright_white(&self) -> Painted<&T>
Source§fn attr(&self, value: Attribute) -> Painted<&T>
fn attr(&self, value: Attribute) -> Painted<&T>
Enables the styling Attribute
value
.
This method should be used rarely. Instead, prefer to use
attribute-specific builder methods like bold()
and
underline()
, which have the same functionality
but are pithier.
§Example
Make text bold using attr()
:
use yansi::{Paint, Attribute};
painted.attr(Attribute::Bold);
Make text bold using using bold()
.
use yansi::Paint;
painted.bold();
Source§fn rapid_blink(&self) -> Painted<&T>
fn rapid_blink(&self) -> Painted<&T>
Source§fn quirk(&self, value: Quirk) -> Painted<&T>
fn quirk(&self, value: Quirk) -> Painted<&T>
Enables the yansi
Quirk
value
.
This method should be used rarely. Instead, prefer to use quirk-specific
builder methods like mask()
and
wrap()
, which have the same functionality but are
pithier.
§Example
Enable wrapping using .quirk()
:
use yansi::{Paint, Quirk};
painted.quirk(Quirk::Wrap);
Enable wrapping using wrap()
.
use yansi::Paint;
painted.wrap();
Source§fn clear(&self) -> Painted<&T>
👎Deprecated since 1.0.1: renamed to resetting()
due to conflicts with Vec::clear()
.
The clear()
method will be removed in a future release.
fn clear(&self) -> Painted<&T>
resetting()
due to conflicts with Vec::clear()
.
The clear()
method will be removed in a future release.Source§fn whenever(&self, value: Condition) -> Painted<&T>
fn whenever(&self, value: Condition) -> Painted<&T>
Conditionally enable styling based on whether the Condition
value
applies. Replaces any previous condition.
See the crate level docs for more details.
§Example
Enable styling painted
only when both stdout
and stderr
are TTYs:
use yansi::{Paint, Condition};
painted.red().on_yellow().whenever(Condition::STDOUTERR_ARE_TTY);