ServiceMonitoringServiceAsyncClient(*, credentials: Optional[google.auth.credentials.Credentials] = None, transport: Union[str, google.cloud.monitoring_v3.services.service_monitoring_service.transports.base.ServiceMonitoringServiceTransport] = 'grpc_asyncio', client_options: Optional[google.api_core.client_options.ClientOptions] = None, client_info: google.api_core.gapic_v1.client_info.ClientInfo = <google.api_core.gapic_v1.client_info.ClientInfo object>)
The Cloud Monitoring Service-Oriented Monitoring API has endpoints
for managing and querying aspects of a workspace's services. These
include the Service
's monitored resources, its Service-Level
Objectives, and a taxonomy of categorized Health Metrics.
Properties
transport
Returns the transport used by the client instance.
Returns | |
---|---|
Type | Description |
ServiceMonitoringServiceTransport | The transport used by the client instance. |
Methods
ServiceMonitoringServiceAsyncClient
ServiceMonitoringServiceAsyncClient(*, credentials: Optional[google.auth.credentials.Credentials] = None, transport: Union[str, google.cloud.monitoring_v3.services.service_monitoring_service.transports.base.ServiceMonitoringServiceTransport] = 'grpc_asyncio', client_options: Optional[google.api_core.client_options.ClientOptions] = None, client_info: google.api_core.gapic_v1.client_info.ClientInfo = <google.api_core.gapic_v1.client_info.ClientInfo object>)
Instantiates the service monitoring service client.
Parameters | |
---|---|
Name | Description |
credentials |
Optional[google.auth.credentials.Credentials]
The authorization credentials to attach to requests. These credentials identify the application to the service; if none are specified, the client will attempt to ascertain the credentials from the environment. |
transport |
Union[str,
The transport to use. If set to None, a transport is chosen automatically. |
client_options |
ClientOptions
Custom options for the client. It won't take effect if a |
Exceptions | |
---|---|
Type | Description |
google.auth.exceptions.MutualTlsChannelError | If mutual TLS transport creation failed for any reason. |
common_billing_account_path
common_billing_account_path(billing_account: str)
Returns a fully-qualified billing_account string.
common_folder_path
common_folder_path(folder: str)
Returns a fully-qualified folder string.
common_location_path
common_location_path(project: str, location: str)
Returns a fully-qualified location string.
common_organization_path
common_organization_path(organization: str)
Returns a fully-qualified organization string.
common_project_path
common_project_path(project: str)
Returns a fully-qualified project string.
create_service
create_service(request: Optional[Union[google.cloud.monitoring_v3.types.service_service.CreateServiceRequest, dict]] = None, *, parent: Optional[str] = None, service: Optional[google.cloud.monitoring_v3.types.service.Service] = None, retry: Union[google.api_core.retry.Retry, google.api_core.gapic_v1.method._MethodDefault] = <_MethodDefault._DEFAULT_VALUE: <object object>>, timeout: Union[float, object] = <_MethodDefault._DEFAULT_VALUE: <object object>>, metadata: Sequence[Tuple[str, str]] = ())
Create a Service
.
# This snippet has been automatically generated and should be regarded as a
# code template only.
# It will require modifications to work:
# - It may require correct/in-range values for request initialization.
# - It may require specifying regional endpoints when creating the service
# client as shown in:
# https://googleapis.dev/python/google-api-core/latest/client_options.html
from google.cloud import monitoring_v3
async def sample_create_service():
# Create a client
client = monitoring_v3.ServiceMonitoringServiceAsyncClient()
# Initialize request argument(s)
request = monitoring_v3.CreateServiceRequest(
parent="parent_value",
)
# Make the request
response = await client.create_service(request=request)
# Handle the response
print(response)
Parameters | |
---|---|
Name | Description |
request |
Optional[Union[google.cloud.monitoring_v3.types.CreateServiceRequest, dict]]
The request object. The |
parent |
Required. Resource |
service |
Service
Required. The |
retry |
google.api_core.retry.Retry
Designation of what errors, if any, should be retried. |
timeout |
float
The timeout for this request. |
metadata |
Sequence[Tuple[str, str]]
Strings which should be sent along with the request as metadata. |
Returns | |
---|---|
Type | Description |
google.cloud.monitoring_v3.types.Service | A Service is a discrete, autonomous, and network-accessible unit, designed to solve an individual concern ([Wikipedia](https://en.wikipedia.org/wiki/Service-orientation)). In Cloud Monitoring, a Service acts as the root resource under which operational aspects of the service are accessible. |
create_service_level_objective
create_service_level_objective(request: Optional[Union[google.cloud.monitoring_v3.types.service_service.CreateServiceLevelObjectiveRequest, dict]] = None, *, parent: Optional[str] = None, service_level_objective: Optional[google.cloud.monitoring_v3.types.service.ServiceLevelObjective] = None, retry: Union[google.api_core.retry.Retry, google.api_core.gapic_v1.method._MethodDefault] = <_MethodDefault._DEFAULT_VALUE: <object object>>, timeout: Union[float, object] = <_MethodDefault._DEFAULT_VALUE: <object object>>, metadata: Sequence[Tuple[str, str]] = ())
Create a ServiceLevelObjective
for the given Service
.
# This snippet has been automatically generated and should be regarded as a
# code template only.
# It will require modifications to work:
# - It may require correct/in-range values for request initialization.
# - It may require specifying regional endpoints when creating the service
# client as shown in:
# https://googleapis.dev/python/google-api-core/latest/client_options.html
from google.cloud import monitoring_v3
async def sample_create_service_level_objective():
# Create a client
client = monitoring_v3.ServiceMonitoringServiceAsyncClient()
# Initialize request argument(s)
request = monitoring_v3.CreateServiceLevelObjectiveRequest(
parent="parent_value",
)
# Make the request
response = await client.create_service_level_objective(request=request)
# Handle the response
print(response)
Parameters | |
---|---|
Name | Description |
request |
Optional[Union[google.cloud.monitoring_v3.types.CreateServiceLevelObjectiveRequest, dict]]
The request object. The |
parent |
Required. Resource name of the parent |
service_level_objective |
ServiceLevelObjective
Required. The |
retry |
google.api_core.retry.Retry
Designation of what errors, if any, should be retried. |
timeout |
float
The timeout for this request. |
metadata |
Sequence[Tuple[str, str]]
Strings which should be sent along with the request as metadata. |
Returns | |
---|---|
Type | Description |
google.cloud.monitoring_v3.types.ServiceLevelObjective | A Service-Level Objective (SLO) describes a level of desired good service. It consists of a service-level indicator (SLI), a performance goal, and a period over which the objective is to be evaluated against that goal. The SLO can use SLIs defined in a number of different manners. Typical SLOs might include "99% of requests in each rolling week have latency below 200 milliseconds" or "99.5% of requests in each calendar month return successfully." |
delete_service
delete_service(request: Optional[Union[google.cloud.monitoring_v3.types.service_service.DeleteServiceRequest, dict]] = None, *, name: Optional[str] = None, retry: Union[google.api_core.retry.Retry, google.api_core.gapic_v1.method._MethodDefault] = <_MethodDefault._DEFAULT_VALUE: <object object>>, timeout: Union[float, object] = <_MethodDefault._DEFAULT_VALUE: <object object>>, metadata: Sequence[Tuple[str, str]] = ())
Soft delete this Service
.
# This snippet has been automatically generated and should be regarded as a
# code template only.
# It will require modifications to work:
# - It may require correct/in-range values for request initialization.
# - It may require specifying regional endpoints when creating the service
# client as shown in:
# https://googleapis.dev/python/google-api-core/latest/client_options.html
from google.cloud import monitoring_v3
async def sample_delete_service():
# Create a client
client = monitoring_v3.ServiceMonitoringServiceAsyncClient()
# Initialize request argument(s)
request = monitoring_v3.DeleteServiceRequest(
name="name_value",
)
# Make the request
await client.delete_service(request=request)
Parameters | |
---|---|
Name | Description |
request |
Optional[Union[google.cloud.monitoring_v3.types.DeleteServiceRequest, dict]]
The request object. The |
name |
Required. Resource name of the |
retry |
google.api_core.retry.Retry
Designation of what errors, if any, should be retried. |
timeout |
float
The timeout for this request. |
metadata |
Sequence[Tuple[str, str]]
Strings which should be sent along with the request as metadata. |
delete_service_level_objective
delete_service_level_objective(request: Optional[Union[google.cloud.monitoring_v3.types.service_service.DeleteServiceLevelObjectiveRequest, dict]] = None, *, name: Optional[str] = None, retry: Union[google.api_core.retry.Retry, google.api_core.gapic_v1.method._MethodDefault] = <_MethodDefault._DEFAULT_VALUE: <object object>>, timeout: Union[float, object] = <_MethodDefault._DEFAULT_VALUE: <object object>>, metadata: Sequence[Tuple[str, str]] = ())
Delete the given ServiceLevelObjective
.
# This snippet has been automatically generated and should be regarded as a
# code template only.
# It will require modifications to work:
# - It may require correct/in-range values for request initialization.
# - It may require specifying regional endpoints when creating the service
# client as shown in:
# https://googleapis.dev/python/google-api-core/latest/client_options.html
from google.cloud import monitoring_v3
async def sample_delete_service_level_objective():
# Create a client
client = monitoring_v3.ServiceMonitoringServiceAsyncClient()
# Initialize request argument(s)
request = monitoring_v3.DeleteServiceLevelObjectiveRequest(
name="name_value",
)
# Make the request
await client.delete_service_level_objective(request=request)
Parameters | |
---|---|
Name | Description |
request |
Optional[Union[google.cloud.monitoring_v3.types.DeleteServiceLevelObjectiveRequest, dict]]
The request object. The |
name |
Required. Resource name of the |
retry |
google.api_core.retry.Retry
Designation of what errors, if any, should be retried. |
timeout |
float
The timeout for this request. |
metadata |
Sequence[Tuple[str, str]]
Strings which should be sent along with the request as metadata. |
from_service_account_file
from_service_account_file(filename: str, *args, **kwargs)
Creates an instance of this client using the provided credentials file.
Parameter | |
---|---|
Name | Description |
filename |
str
The path to the service account private key json file. |
Returns | |
---|---|
Type | Description |
ServiceMonitoringServiceAsyncClient | The constructed client. |
from_service_account_info
from_service_account_info(info: dict, *args, **kwargs)
Creates an instance of this client using the provided credentials info.
Parameter | |
---|---|
Name | Description |
info |
dict
The service account private key info. |
Returns | |
---|---|
Type | Description |
ServiceMonitoringServiceAsyncClient | The constructed client. |
from_service_account_json
from_service_account_json(filename: str, *args, **kwargs)
Creates an instance of this client using the provided credentials file.
Parameter | |
---|---|
Name | Description |
filename |
str
The path to the service account private key json file. |
Returns | |
---|---|
Type | Description |
ServiceMonitoringServiceAsyncClient | The constructed client. |
get_mtls_endpoint_and_cert_source
get_mtls_endpoint_and_cert_source(
client_options: Optional[google.api_core.client_options.ClientOptions] = None,
)
Return the API endpoint and client cert source for mutual TLS.
The client cert source is determined in the following order:
(1) if GOOGLE_API_USE_CLIENT_CERTIFICATE
environment variable is not "true", the
client cert source is None.
(2) if client_options.client_cert_source
is provided, use the provided one; if the
default client cert source exists, use the default one; otherwise the client cert
source is None.
The API endpoint is determined in the following order:
(1) if client_options.api_endpoint
if provided, use the provided one.
(2) if GOOGLE_API_USE_CLIENT_CERTIFICATE
environment variable is "always", use the
default mTLS endpoint; if the environment variabel is "never", use the default API
endpoint; otherwise if client cert source exists, use the default mTLS endpoint, otherwise
use the default API endpoint.
More details can be found at https://google.aip.dev/auth/4114.
Parameter | |
---|---|
Name | Description |
client_options |
google.api_core.client_options.ClientOptions
Custom options for the client. Only the |
Exceptions | |
---|---|
Type | Description |
google.auth.exceptions.MutualTLSChannelError | If any errors happen. |
Returns | |
---|---|
Type | Description |
Tuple[str, Callable[[], Tuple[bytes, bytes]]] | returns the API endpoint and the client cert source to use. |
get_service
get_service(request: Optional[Union[google.cloud.monitoring_v3.types.service_service.GetServiceRequest, dict]] = None, *, name: Optional[str] = None, retry: Union[google.api_core.retry.Retry, google.api_core.gapic_v1.method._MethodDefault] = <_MethodDefault._DEFAULT_VALUE: <object object>>, timeout: Union[float, object] = <_MethodDefault._DEFAULT_VALUE: <object object>>, metadata: Sequence[Tuple[str, str]] = ())
Get the named Service
.
# This snippet has been automatically generated and should be regarded as a
# code template only.
# It will require modifications to work:
# - It may require correct/in-range values for request initialization.
# - It may require specifying regional endpoints when creating the service
# client as shown in:
# https://googleapis.dev/python/google-api-core/latest/client_options.html
from google.cloud import monitoring_v3
async def sample_get_service():
# Create a client
client = monitoring_v3.ServiceMonitoringServiceAsyncClient()
# Initialize request argument(s)
request = monitoring_v3.GetServiceRequest(
name="name_value",
)
# Make the request
response = await client.get_service(request=request)
# Handle the response
print(response)
Parameters | |
---|---|
Name | Description |
request |
Optional[Union[google.cloud.monitoring_v3.types.GetServiceRequest, dict]]
The request object. The |
name |
Required. Resource name of the |
retry |
google.api_core.retry.Retry
Designation of what errors, if any, should be retried. |
timeout |
float
The timeout for this request. |
metadata |
Sequence[Tuple[str, str]]
Strings which should be sent along with the request as metadata. |
Returns | |
---|---|
Type | Description |
google.cloud.monitoring_v3.types.Service | A Service is a discrete, autonomous, and network-accessible unit, designed to solve an individual concern ([Wikipedia](https://en.wikipedia.org/wiki/Service-orientation)). In Cloud Monitoring, a Service acts as the root resource under which operational aspects of the service are accessible. |
get_service_level_objective
get_service_level_objective(request: Optional[Union[google.cloud.monitoring_v3.types.service_service.GetServiceLevelObjectiveRequest, dict]] = None, *, name: Optional[str] = None, retry: Union[google.api_core.retry.Retry, google.api_core.gapic_v1.method._MethodDefault] = <_MethodDefault._DEFAULT_VALUE: <object object>>, timeout: Union[float, object] = <_MethodDefault._DEFAULT_VALUE: <object object>>, metadata: Sequence[Tuple[str, str]] = ())
Get a ServiceLevelObjective
by name.
# This snippet has been automatically generated and should be regarded as a
# code template only.
# It will require modifications to work:
# - It may require correct/in-range values for request initialization.
# - It may require specifying regional endpoints when creating the service
# client as shown in:
# https://googleapis.dev/python/google-api-core/latest/client_options.html
from google.cloud import monitoring_v3
async def sample_get_service_level_objective():
# Create a client
client = monitoring_v3.ServiceMonitoringServiceAsyncClient()
# Initialize request argument(s)
request = monitoring_v3.GetServiceLevelObjectiveRequest(
name="name_value",
)
# Make the request
response = await client.get_service_level_objective(request=request)
# Handle the response
print(response)
Parameters | |
---|---|
Name | Description |
request |
Optional[Union[google.cloud.monitoring_v3.types.GetServiceLevelObjectiveRequest, dict]]
The request object. The |
name |
Required. Resource name of the |
retry |
google.api_core.retry.Retry
Designation of what errors, if any, should be retried. |
timeout |
float
The timeout for this request. |
metadata |
Sequence[Tuple[str, str]]
Strings which should be sent along with the request as metadata. |
Returns | |
---|---|
Type | Description |
google.cloud.monitoring_v3.types.ServiceLevelObjective | A Service-Level Objective (SLO) describes a level of desired good service. It consists of a service-level indicator (SLI), a performance goal, and a period over which the objective is to be evaluated against that goal. The SLO can use SLIs defined in a number of different manners. Typical SLOs might include "99% of requests in each rolling week have latency below 200 milliseconds" or "99.5% of requests in each calendar month return successfully." |
get_transport_class
get_transport_class()
Returns an appropriate transport class.
list_service_level_objectives
list_service_level_objectives(request: Optional[Union[google.cloud.monitoring_v3.types.service_service.ListServiceLevelObjectivesRequest, dict]] = None, *, parent: Optional[str] = None, retry: Union[google.api_core.retry.Retry, google.api_core.gapic_v1.method._MethodDefault] = <_MethodDefault._DEFAULT_VALUE: <object object>>, timeout: Union[float, object] = <_MethodDefault._DEFAULT_VALUE: <object object>>, metadata: Sequence[Tuple[str, str]] = ())
List the ServiceLevelObjective
\ s for the given Service
.
# This snippet has been automatically generated and should be regarded as a
# code template only.
# It will require modifications to work:
# - It may require correct/in-range values for request initialization.
# - It may require specifying regional endpoints when creating the service
# client as shown in:
# https://googleapis.dev/python/google-api-core/latest/client_options.html
from google.cloud import monitoring_v3
async def sample_list_service_level_objectives():
# Create a client
client = monitoring_v3.ServiceMonitoringServiceAsyncClient()
# Initialize request argument(s)
request = monitoring_v3.ListServiceLevelObjectivesRequest(
parent="parent_value",
)
# Make the request
page_result = client.list_service_level_objectives(request=request)
# Handle the response
async for response in page_result:
print(response)
Parameters | |
---|---|
Name | Description |
request |
Optional[Union[google.cloud.monitoring_v3.types.ListServiceLevelObjectivesRequest, dict]]
The request object. The |
parent |
Required. Resource name of the parent containing the listed SLOs, either a project or a Monitoring Workspace. The formats are: :: projects/[PROJECT_ID_OR_NUMBER]/services/[SERVICE_ID] workspaces/[HOST_PROJECT_ID_OR_NUMBER]/services/- This corresponds to the |
retry |
google.api_core.retry.Retry
Designation of what errors, if any, should be retried. |
timeout |
float
The timeout for this request. |
metadata |
Sequence[Tuple[str, str]]
Strings which should be sent along with the request as metadata. |
Returns | |
---|---|
Type | Description |
google.cloud.monitoring_v3.services.service_monitoring_service.pagers.ListServiceLevelObjectivesAsyncPager | The ListServiceLevelObjectives response. Iterating over this object will yield results and resolve additional pages automatically. |
list_services
list_services(request: Optional[Union[google.cloud.monitoring_v3.types.service_service.ListServicesRequest, dict]] = None, *, parent: Optional[str] = None, retry: Union[google.api_core.retry.Retry, google.api_core.gapic_v1.method._MethodDefault] = <_MethodDefault._DEFAULT_VALUE: <object object>>, timeout: Union[float, object] = <_MethodDefault._DEFAULT_VALUE: <object object>>, metadata: Sequence[Tuple[str, str]] = ())
List Service
\ s for this workspace.
# This snippet has been automatically generated and should be regarded as a
# code template only.
# It will require modifications to work:
# - It may require correct/in-range values for request initialization.
# - It may require specifying regional endpoints when creating the service
# client as shown in:
# https://googleapis.dev/python/google-api-core/latest/client_options.html
from google.cloud import monitoring_v3
async def sample_list_services():
# Create a client
client = monitoring_v3.ServiceMonitoringServiceAsyncClient()
# Initialize request argument(s)
request = monitoring_v3.ListServicesRequest(
parent="parent_value",
)
# Make the request
page_result = client.list_services(request=request)
# Handle the response
async for response in page_result:
print(response)
Parameters | |
---|---|
Name | Description |
request |
Optional[Union[google.cloud.monitoring_v3.types.ListServicesRequest, dict]]
The request object. The |
parent |
Required. Resource name of the parent containing the listed services, either a |
retry |
google.api_core.retry.Retry
Designation of what errors, if any, should be retried. |
timeout |
float
The timeout for this request. |
metadata |
Sequence[Tuple[str, str]]
Strings which should be sent along with the request as metadata. |
Returns | |
---|---|
Type | Description |
google.cloud.monitoring_v3.services.service_monitoring_service.pagers.ListServicesAsyncPager | The ListServices response. Iterating over this object will yield results and resolve additional pages automatically. |
parse_common_billing_account_path
parse_common_billing_account_path(path: str)
Parse a billing_account path into its component segments.
parse_common_folder_path
parse_common_folder_path(path: str)
Parse a folder path into its component segments.
parse_common_location_path
parse_common_location_path(path: str)
Parse a location path into its component segments.
parse_common_organization_path
parse_common_organization_path(path: str)
Parse a organization path into its component segments.
parse_common_project_path
parse_common_project_path(path: str)
Parse a project path into its component segments.
parse_service_level_objective_path
parse_service_level_objective_path(path: str)
Parses a service_level_objective path into its component segments.
parse_service_path
parse_service_path(path: str)
Parses a service path into its component segments.
service_level_objective_path
service_level_objective_path(
project: str, service: str, service_level_objective: str
)
Returns a fully-qualified service_level_objective string.
service_path
service_path(project: str, service: str)
Returns a fully-qualified service string.
update_service
update_service(request: Optional[Union[google.cloud.monitoring_v3.types.service_service.UpdateServiceRequest, dict]] = None, *, service: Optional[google.cloud.monitoring_v3.types.service.Service] = None, retry: Union[google.api_core.retry.Retry, google.api_core.gapic_v1.method._MethodDefault] = <_MethodDefault._DEFAULT_VALUE: <object object>>, timeout: Union[float, object] = <_MethodDefault._DEFAULT_VALUE: <object object>>, metadata: Sequence[Tuple[str, str]] = ())
Update this Service
.
# This snippet has been automatically generated and should be regarded as a
# code template only.
# It will require modifications to work:
# - It may require correct/in-range values for request initialization.
# - It may require specifying regional endpoints when creating the service
# client as shown in:
# https://googleapis.dev/python/google-api-core/latest/client_options.html
from google.cloud import monitoring_v3
async def sample_update_service():
# Create a client
client = monitoring_v3.ServiceMonitoringServiceAsyncClient()
# Initialize request argument(s)
request = monitoring_v3.UpdateServiceRequest(
)
# Make the request
response = await client.update_service(request=request)
# Handle the response
print(response)
Parameters | |
---|---|
Name | Description |
request |
Optional[Union[google.cloud.monitoring_v3.types.UpdateServiceRequest, dict]]
The request object. The |
service |
Service
Required. The |
retry |
google.api_core.retry.Retry
Designation of what errors, if any, should be retried. |
timeout |
float
The timeout for this request. |
metadata |
Sequence[Tuple[str, str]]
Strings which should be sent along with the request as metadata. |
Returns | |
---|---|
Type | Description |
google.cloud.monitoring_v3.types.Service | A Service is a discrete, autonomous, and network-accessible unit, designed to solve an individual concern ([Wikipedia](https://en.wikipedia.org/wiki/Service-orientation)). In Cloud Monitoring, a Service acts as the root resource under which operational aspects of the service are accessible. |
update_service_level_objective
update_service_level_objective(request: Optional[Union[google.cloud.monitoring_v3.types.service_service.UpdateServiceLevelObjectiveRequest, dict]] = None, *, service_level_objective: Optional[google.cloud.monitoring_v3.types.service.ServiceLevelObjective] = None, retry: Union[google.api_core.retry.Retry, google.api_core.gapic_v1.method._MethodDefault] = <_MethodDefault._DEFAULT_VALUE: <object object>>, timeout: Union[float, object] = <_MethodDefault._DEFAULT_VALUE: <object object>>, metadata: Sequence[Tuple[str, str]] = ())
Update the given ServiceLevelObjective
.
# This snippet has been automatically generated and should be regarded as a
# code template only.
# It will require modifications to work:
# - It may require correct/in-range values for request initialization.
# - It may require specifying regional endpoints when creating the service
# client as shown in:
# https://googleapis.dev/python/google-api-core/latest/client_options.html
from google.cloud import monitoring_v3
async def sample_update_service_level_objective():
# Create a client
client = monitoring_v3.ServiceMonitoringServiceAsyncClient()
# Initialize request argument(s)
request = monitoring_v3.UpdateServiceLevelObjectiveRequest(
)
# Make the request
response = await client.update_service_level_objective(request=request)
# Handle the response
print(response)
Parameters | |
---|---|
Name | Description |
request |
Optional[Union[google.cloud.monitoring_v3.types.UpdateServiceLevelObjectiveRequest, dict]]
The request object. The |
service_level_objective |
ServiceLevelObjective
Required. The |
retry |
google.api_core.retry.Retry
Designation of what errors, if any, should be retried. |
timeout |
float
The timeout for this request. |
metadata |
Sequence[Tuple[str, str]]
Strings which should be sent along with the request as metadata. |
Returns | |
---|---|
Type | Description |
google.cloud.monitoring_v3.types.ServiceLevelObjective | A Service-Level Objective (SLO) describes a level of desired good service. It consists of a service-level indicator (SLI), a performance goal, and a period over which the objective is to be evaluated against that goal. The SLO can use SLIs defined in a number of different manners. Typical SLOs might include "99% of requests in each rolling week have latency below 200 milliseconds" or "99.5% of requests in each calendar month return successfully." |