AWS SDK for C++  1.8.78
AWS SDK for C++
Classes | Typedefs | Enumerations | Functions
Aws::Monitoring Namespace Reference

Classes

struct  CoreMetricsCollection
 
class  DefaultMonitoring
 
class  DefaultMonitoringFactory
 
class  MonitoringFactory
 
class  MonitoringInterface
 

Typedefs

typedef Aws::Map< Aws::String, int64_t > HttpClientMetricsCollection
 
typedef std::function< Aws::UniquePtr< MonitoringFactory >)> MonitoringFactoryCreateFunction
 

Enumerations

enum  HttpClientMetricsType {
  HttpClientMetricsType::DestinationIp = 0, HttpClientMetricsType::AcquireConnectionLatency, HttpClientMetricsType::ConnectionReused, HttpClientMetricsType::ConnectLatency,
  HttpClientMetricsType::RequestLatency, HttpClientMetricsType::DnsLatency, HttpClientMetricsType::TcpLatency, HttpClientMetricsType::SslLatency,
  HttpClientMetricsType::Unknown
}
 

Functions

AWS_CORE_API HttpClientMetricsType GetHttpClientMetricTypeByName (const Aws::String &name)
 
AWS_CORE_API Aws::String GetHttpClientMetricNameByType (HttpClientMetricsType type)
 
Aws::Vector< void * > OnRequestStarted (const Aws::String &serviceName, const Aws::String &requestName, const std::shared_ptr< const Aws::Http::HttpRequest > &request)
 
void OnRequestSucceeded (const Aws::String &serviceName, const Aws::String &requestName, const std::shared_ptr< const Aws::Http::HttpRequest > &request, const Aws::Client::HttpResponseOutcome &outcome, const CoreMetricsCollection &metricsFromCore, const Aws::Vector< void *> &contexts)
 
void OnRequestFailed (const Aws::String &serviceName, const Aws::String &requestName, const std::shared_ptr< const Aws::Http::HttpRequest > &request, const Aws::Client::HttpResponseOutcome &outcome, const CoreMetricsCollection &metricsFromCore, const Aws::Vector< void *> &contexts)
 
void OnRequestRetry (const Aws::String &serviceName, const Aws::String &requestName, const std::shared_ptr< const Aws::Http::HttpRequest > &request, const Aws::Vector< void *> &contexts)
 
void OnFinish (const Aws::String &serviceName, const Aws::String &requestName, const std::shared_ptr< const Aws::Http::HttpRequest > &request, const Aws::Vector< void *> &contexts)
 
AWS_CORE_API void InitMonitoring (const std::vector< MonitoringFactoryCreateFunction > &monitoringFactoryCreateFunctions)
 
AWS_CORE_API void CleanupMonitoring ()
 

Typedef Documentation

◆ HttpClientMetricsCollection

Definition at line 78 of file HttpClientMetrics.h.

◆ MonitoringFactoryCreateFunction

Definition at line 49 of file MonitoringManager.h.

Enumeration Type Documentation

◆ HttpClientMetricsType

Metrics definitions optional from HttpClient module inside AWS Sdk core.

Enumerator
DestinationIp 
AcquireConnectionLatency 

Requires the SDK to recognize that an existing connection was reused to make the request, contains the time interval (in milliseconds) between the construction of the http request and when a connection was successfully acquired from the connection pool.

ConnectionReused 

Requires the SDK to recognize whether or not an existing connection was used to make the request, contains 1 if an existing connection was used to perform the http request; contains 0 if a new connection was opened to perform the http request.

ConnectLatency 

Requires the SDK to recognize that a new connection was established to make the request, contains the time interval (in milliseconds) between the construction of the http request and when a connection was fully established. If the SDK is able to estimate this time despite not having a perfectly accurate callback for the specific event, then it should. For example, if the http client includes user-level data write functions that are guaranteed to be called shortly after connection establishment, then the first call could be used as a reasonable time marker for ConnectLatency

RequestLatency 

Requires the SDK to be able to mark the point in time where the request starts transmission, contains the time interval (in milliseconds) between when the request begins transmission to the service and when a terminal error has occurred or the response has been parsed, excluding streaming payloads. Like ConnectLatency, if the SDK has access to an event that is a "close enough" marker in time, it should include this entry. The request here is a http level request, not a service level API request.

DnsLatency 

Requires the SDK to have access to how long it took to perform DNS lookup, if it took place, contains the time (in milliseconds) it took to perform DNS lookup, during the Api Call attempt.

TcpLatency 

Requires the SDK to have access to how long it took to establish the underlying Tcp/Ip connection used for the request, contains the time (in milliseconds) it took to fully establish the TCP/IP connection used to make the request attempt.

SslLatency 

Requires the SDK to have access to how long it took to perform the SSL handshake for a secure request, contains the time (in milliseconds) it took to perform a SSL handshake over the established TCP/IP connection.

Unknown 

Unknow Metrics Type

Definition at line 18 of file HttpClientMetrics.h.

Function Documentation

◆ CleanupMonitoring()

AWS_CORE_API void Aws::Monitoring::CleanupMonitoring ( )

Clean up monitoring related global variables

◆ GetHttpClientMetricNameByType()

AWS_CORE_API Aws::String Aws::Monitoring::GetHttpClientMetricNameByType ( HttpClientMetricsType  type)

◆ GetHttpClientMetricTypeByName()

AWS_CORE_API HttpClientMetricsType Aws::Monitoring::GetHttpClientMetricTypeByName ( const Aws::String name)

◆ InitMonitoring()

AWS_CORE_API void Aws::Monitoring::InitMonitoring ( const std::vector< MonitoringFactoryCreateFunction > &  monitoringFactoryCreateFunctions)

Init monitoring using supplied factories, monitoring can support multiple instances. We will try to (based on config resolution result) create a default client side monitoring listener instance defined in AWS SDK Core module. and create other instances from these factories. This function will be called during Aws::InitAPI call, argument is acquired from Aws::SDKOptions->MonitoringOptions

◆ OnFinish()

void Aws::Monitoring::OnFinish ( const Aws::String serviceName,
const Aws::String requestName,
const std::shared_ptr< const Aws::Http::HttpRequest > &  request,
const Aws::Vector< void *> &  contexts 
)

Wrapper function of OnFinish defined by all monitoring instances

◆ OnRequestFailed()

void Aws::Monitoring::OnRequestFailed ( const Aws::String serviceName,
const Aws::String requestName,
const std::shared_ptr< const Aws::Http::HttpRequest > &  request,
const Aws::Client::HttpResponseOutcome outcome,
const CoreMetricsCollection metricsFromCore,
const Aws::Vector< void *> &  contexts 
)

Wrapper function of OnRequestFailed defined by all monitoring instances

◆ OnRequestRetry()

void Aws::Monitoring::OnRequestRetry ( const Aws::String serviceName,
const Aws::String requestName,
const std::shared_ptr< const Aws::Http::HttpRequest > &  request,
const Aws::Vector< void *> &  contexts 
)

Wrapper function of OnRequestRetry defined by all monitoring instances

◆ OnRequestStarted()

Aws::Vector<void*> Aws::Monitoring::OnRequestStarted ( const Aws::String serviceName,
const Aws::String requestName,
const std::shared_ptr< const Aws::Http::HttpRequest > &  request 
)

Wrapper function of OnRequestStarted defined by all monitoring instances

◆ OnRequestSucceeded()

void Aws::Monitoring::OnRequestSucceeded ( const Aws::String serviceName,
const Aws::String requestName,
const std::shared_ptr< const Aws::Http::HttpRequest > &  request,
const Aws::Client::HttpResponseOutcome outcome,
const CoreMetricsCollection metricsFromCore,
const Aws::Vector< void *> &  contexts 
)

Wrapper function of OnRequestSucceeded defined by all monitoring instances