AWS CLI를 사용한 Application Signals 예시
다음 코드 예시에서는 Application Signals와 함께 AWS Command Line Interface를 사용하여 작업을 수행하고 일반적인 시나리오를 구현하는 방법을 보여줍니다.
작업은 대규모 프로그램에서 발췌한 코드이며 컨텍스트에 맞춰 실행해야 합니다. 작업은 관련 시나리오의 컨텍스트에 따라 표시되며, 개별 서비스 함수를 직접적으로 호출하는 방법을 보여줍니다.
각 예시에는 전체 소스 코드에 대한 링크가 포함되어 있으며, 여기에서 컨텍스트에 맞춰 코드를 설정하고 실행하는 방법에 대한 지침을 찾을 수 있습니다.
주제
작업
다음 코드 예시는 batch-get-service-level-objective-budget-report
의 사용 방법을 보여 줍니다.
- AWS CLI
-
하나 이상의 서비스 수준 목표(SLO) 예산 보고서를 검색하는 방법
다음
batch-get-service-level-objective-budget-report
예시에서는 하나 이상의 서비스 수준 목표(SLO) 예산 보고서를 검색합니다.aws application-signals batch-get-service-level-objective-budget-report \ --timestamp
1735059869
\ --slo-ids"arn:aws:application-signals:us-east-1:123456789101:slo/SLOName1"
"arn:aws:application-signals:us-east-1:123456789101:slo/SLOName2"
출력:
{ "Timestamp": "2024-12-24T22:34:29+05:30", "Reports": [{ "Arn": "arn:aws:application-signals:us-east-1:123456789101:slo/SLOName1", "Name": "Your SLO Name", "EvaluationType": "PeriodBased", "BudgetStatus": "OK", "Attainment": 100.0, "TotalBudgetSeconds": 6048, "BudgetSecondsRemaining": 6048, "Sli": { "SliMetric": { "MetricDataQueries": [{ "Id": "m1", "MetricStat": { "Metric": { "Namespace": "AWS/EC2", "MetricName": "CPUUtilization", "Dimensions": [{ "Name": "InstanceId", "Value": "i-0e098765432522" }] }, "Period": 60, "Stat": "Average" }, "ReturnData": true }] }, "MetricThreshold": 200.0, "ComparisonOperator": "LessThanOrEqualTo" }, "Goal": { "Interval": { "RollingInterval": { "DurationUnit": "DAY", "Duration": 7 } }, "AttainmentGoal": 99.0, "WarningThreshold": 50.0 } }, { "Arn": "arn:aws:application-signals:us-east-1:123456789101:slo/SLOName2", "Name": "test", "EvaluationType": "PeriodBased", "BudgetStatus": "BREACHED", "Attainment": 97.39583275, "TotalBudgetSeconds": 86, "BudgetSecondsRemaining": -2154, "Sli": { "SliMetric": { "MetricDataQueries": [{ "Id": "cwMetric", "MetricStat": { "Metric": { "Namespace": "AWS/EC2", "MetricName": "CPUUtilization", "Dimensions": [{ "Name": "InstanceId", "Value": "i-0e12345678922" }] }, "Period": 300, "Stat": "Average" }, "ReturnData": true }] }, "MetricThreshold": 5.0, "ComparisonOperator": "GreaterThan" }, "Goal": { "Interval": { "RollingInterval": { "DurationUnit": "DAY", "Duration": 1 } }, "AttainmentGoal": 99.9, "WarningThreshold": 30.0 } } ], "Errors": [] }
자세한 내용은 Amazon CloudWatch 사용 설명서의 Application Signals를 참조하세요.
-
API 세부 정보는 AWS CLI 명령 참조의 BatchGetServiceLevelObjectiveBudgetReport
섹션을 참조하세요.
-
다음 코드 예시는 create-service-level-objective
의 사용 방법을 보여 줍니다.
- AWS CLI
-
서비스 수준 목표(SLO)를 생성하는 방법
다음
create-service-level-objective
예시에서는 중요한 비즈니스 운영이 고객 기대치를 충족하는지 확인하는 데 도움이 되는 서비스 수준 목표(SLO)를 생성합니다.aws application-signals create-service-level-objective \ --name
"SLOName"
\ --description"Description of your SLO"
\ --sli-configfile://sli-config.json
sli-config.json
의 콘텐츠:{ "SliMetricConfig": { "MetricDataQueries": [ { "Id": "m1", "MetricStat": { "Metric": { "Namespace": "AWS/EC2", "MetricName": "CPUUtilization", "Dimensions": [ { "Name": "InstanceId", "Value": "i-0e5a1234561522" } ] }, "Period": 60, "Stat": "Average" }, "ReturnData": true } ] }, "MetricThreshold": 200, "ComparisonOperator": "LessThanOrEqualTo" }
출력:
{ "Slo": { "Arn": "arn:aws:application-signals:us-east-1:123456789101:slo/SLOName", "Name": "SLOName", "Description": "Description of your SLO", "CreatedTime": "2024-12-27T08:16:09.032000+05:30", "LastUpdatedTime": "2024-12-27T08:16:09.032000+05:30", "Sli": { "SliMetric": { "MetricDataQueries": [ { "Id": "m1", "MetricStat": { "Metric": { "Namespace": "AWS/EC2", "MetricName": "CPUUtilization", "Dimensions": [ { "Name": "InstanceId", "Value": "i-0e59876543234522" } ] }, "Period": 60, "Stat": "Average" }, "ReturnData": true } ] }, "MetricThreshold": 200.0, "ComparisonOperator": "LessThanOrEqualTo" }, "EvaluationType": "PeriodBased", "Goal": { "Interval": { "RollingInterval": { "DurationUnit": "DAY", "Duration": 7 } }, "AttainmentGoal": 99.0, "WarningThreshold": 50.0 } } }
자세한 내용은 Amazon CloudWatch 사용 설명서의 Application Signals를 참조하세요.
-
API 세부 정보는 AWS CLI 명령 참조의 CreateServiceLevelObjective
섹션을 참조하세요.
-
다음 코드 예시는 delete-service-level-objective
의 사용 방법을 보여 줍니다.
- AWS CLI
-
지정된 서비스 수준 목표를 삭제하는 방법
다음
delete-service-level-objective
예시에서는 지정된 서비스 수준 목표를 삭제합니다.aws application-signals delete-service-level-objective \ --id
"arn:aws:application-signals:us-east-1:123456789101:slo/SLOName"
이 명령은 출력을 생성하지 않습니다.
자세한 내용은 Amazon CloudWatch 사용 설명서의 Application Signals를 참조하세요.
-
API 세부 정보는 AWS CLI 명령 참조의 DeleteServiceLevelObjective
섹션을 참조하세요.
-
다음 코드 예시는 get-service-level-objective
의 사용 방법을 보여 줍니다.
- AWS CLI
-
계정에서 생성된 SLO에 대한 정보를 반환하는 방법
다음
get-service-level-objective
예시에서는 계정에서 생성된 하나의 SLO에 대한 정보를 반환합니다.aws application-signals get-service-level-objective \ --id
"arn:aws:application-signals:us-east-1:123456789101:slo/SLOName"
출력:
{ "Slo": { "Arn": "arn:aws:application-signals:us-east-1:123456789101:slo/SLOName", "Name": "SLOName", "Description": "Description of your SLO", "CreatedTime": "2024-12-24T22:19:18.624000+05:30", "LastUpdatedTime": "2024-12-24T22:19:55.280000+05:30", "Sli": { "SliMetric": { "MetricDataQueries": [{ "Id": "m1", "MetricStat": { "Metric": { "Namespace": "AWS/EC2", "MetricName": "CPUUtilization", "Dimensions": [{ "Name": "InstanceId", "Value": "i-0e0987654321522" }] }, "Period": 60, "Stat": "Average" }, "ReturnData": true }] }, "MetricThreshold": 200.0, "ComparisonOperator": "LessThanOrEqualTo" }, "EvaluationType": "PeriodBased", "Goal": { "Interval": { "RollingInterval": { "DurationUnit": "DAY", "Duration": 7 } }, "AttainmentGoal": 99.0, "WarningThreshold": 50.0 } } }
자세한 내용은 Amazon CloudWatch 사용 설명서의 Application Signals를 참조하세요.
-
API 세부 정보는 AWS CLI 명령 참조의 GetServiceLevelObjective
섹션을 참조하세요.
-
다음 코드 예시는 get-service
의 사용 방법을 보여 줍니다.
- AWS CLI
-
Application Signals에서 검색한 서비스에 대한 정보를 반환하는 방법
다음
get-service
예시에서는 Application Signals에서 검색한 서비스에 대한 정보를 반환합니다.aws application-signals get-service \ --start-time
1732704000
\ --end-time1732714500
\ --key-attributesEnvironment=lambda:default,Name=hello-world-python,Type=Service
출력:
{ "Service": { "KeyAttributes": { "Environment": "lambda:default", "Name": "hello-world-python", "Type": "Service" }, "AttributeMaps": [{ "Lambda.Function.Name": "hello-world-python", "PlatformType": "AWS::Lambda" }], "MetricReferences": [{ "Namespace": "ApplicationSignals", "MetricType": "LATENCY", "Dimensions": [{ "Name": "Environment", "Value": "lambda:default" }, { "Name": "Service", "Value": "hello-world-python" }], "MetricName": "Latency" }, { "Namespace": "ApplicationSignals", "MetricType": "FAULT", "Dimensions": [{ "Name": "Environment", "Value": "lambda:default" }, { "Name": "Service", "Value": "hello-world-python" }], "MetricName": "Fault" }, { "Namespace": "ApplicationSignals", "MetricType": "ERROR", "Dimensions": [{ "Name": "Environment", "Value": "lambda:default" }, { "Name": "Service", "Value": "hello-world-python" }], "MetricName": "Error" }], "LogGroupReferences": [{ "Identifier": "/aws/lambda/hello-world-python", "ResourceType": "AWS::Logs::LogGroup", "Type": "AWS::Resource" }] }, "StartTime": "2024-11-27T10:00:00+00:00", "EndTime": "2024-11-27T14:00:01+00:00", "LogGroupReferences": [{ "Identifier": "/aws/lambda/hello-world-python", "ResourceType": "AWS::Logs::LogGroup", "Type": "AWS::Resource" }] }
자세한 내용은 Amazon CloudWatch 사용 설명서의 Application Signals를 참조하세요.
-
API 세부 정보는 AWS CLI 명령 참조의 GetService
를 참조하세요.
-
다음 코드 예시는 list-service-dependencies
의 사용 방법을 보여 줍니다.
- AWS CLI
-
지정한 서비스의 서비스 종속성 목록을 반환하는 방법
다음
list-service-dependencies
예시에서는 지정한 서비스의 서비스 종속성 목록을 반환합니다.aws application-signals list-service-dependencies \ --start-time
1732021200
\ --end-time1732107600
\ --key-attributesEnvironment=api-gateway:prod,
Name=PetAdoptionStatusUpdater,Type=Service
출력:
{ "ServiceDependencies": [{ "OperationName": "PUT /prod", "DependencyKeyAttributes": { "Environment": "lambda:default", "Name": "Services-name", "Type": "Service" }, "DependencyOperationName": "Invoke", "MetricReferences": [{ "Namespace": "ApplicationSignals", "MetricType": "LATENCY", "Dimensions": [{ "Name": "Environment", "Value": "api-gateway:prod" }, { "Name": "Operation", "Value": "PUT /prod" }, { "Name": "RemoteEnvironment", "Value": "lambda:default" }, { "Name": "RemoteOperation", "Value": "Invoke" }, { "Name": "RemoteService", "Value": "Services-name" }, { "Name": "Service", "Value": "PetAdoptionStatusUpdater" }], "MetricName": "Latency" }, { "Namespace": "ApplicationSignals", "MetricType": "FAULT", "Dimensions": [{ "Name": "Environment", "Value": "api-gateway:prod" }, { "Name": "Operation", "Value": "PUT /prod" }, { "Name": "RemoteEnvironment", "Value": "lambda:default" }, { "Name": "RemoteOperation", "Value": "Invoke" }, { "Name": "RemoteService", "Value": "Services-name" }, { "Name": "Service", "Value": "PetAdoptionStatusUpdater" }], "MetricName": "Fault" }, { "Namespace": "ApplicationSignals", "MetricType": "ERROR", "Dimensions": [{ "Name": "Environment", "Value": "api-gateway:prod" }, { "Name": "Operation", "Value": "PUT /prod" }, { "Name": "RemoteEnvironment", "Value": "lambda:default" }, { "Name": "RemoteOperation", "Value": "Invoke" }, { "Name": "RemoteService", "Value": "Services-name" }, { "Name": "Service", "Value": "PetAdoptionStatusUpdater" }], "MetricName": "Error" }] }], "StartTime": "2024-11-19T13:00:00+00:00", "EndTime": "2024-11-20T13:00:01+00:00" }
자세한 내용은 Amazon CloudWatch 사용 설명서의 Application Signals를 참조하세요.
-
API 세부 정보는 AWS CLI 명령 참조의 ListServiceDependencies
섹션을 참조하세요.
-
다음 코드 예시는 list-service-dependents
의 사용 방법을 보여 줍니다.
- AWS CLI
-
제공된 시간 범위 동안 지정된 서비스를 간접적으로 호출한 종속 항목 목록을 반환하는 방법
다음
list-service-dependents
예시에서는 제공된 시간 범위 동안 지정된 서비스를 간접적으로 호출한 종속 항목 목록을 반환합니다.aws application-signals list-service-dependents \ --start-time
1732021200
\ --end-time1732107600
\ --key-attributesEnvironment=generic:default,Name=PetSite,Type=Service
출력:
{ "ServiceDependents": [{ "OperationName": "", "DependentKeyAttributes": { "Identifier": "pet-api-canary-hao", "ResourceType": "AWS::Synthetics::Canary", "Type": "AWS::Resource" }, "DependentOperationName": "", "MetricReferences": [] }, { "OperationName": "", "DependentKeyAttributes": { "Identifier": "PetSite", "ResourceType": "AWS::Synthetics::Canary", "Type": "AWS::Resource" }, "DependentOperationName": "", "MetricReferences": [] }], "StartTime": "2024-12-24T05:00:00+00:00", "EndTime": "2024-12-25T06:00:01+00:00" }
자세한 내용은 Amazon CloudWatch 사용 설명서의 Application Signals를 참조하세요.
-
API 세부 정보는 AWS CLI 명령 참조의 ListServiceDependents
섹션을 참조하세요.
-
다음 코드 예시는 list-service-level-objectives
의 사용 방법을 보여 줍니다.
- AWS CLI
-
이 계정에서 생성된 SLO 목록을 반환하는 방법
다음
list-service-level-objectives
예시에서는 이 계정에서 생성된 SLO 목록을 반환합니다.aws application-signals list-service-level-objectives
출력:
{ "SloSummaries": [{ "Arn": "arn:aws:application-signals:us-east-1:123456789101:slo/test", "Name": "test", "CreatedTime": "2024-12-24T22:01:21.116000+05:30" }] }
자세한 내용은 Amazon CloudWatch 사용 설명서의 Application Signals를 참조하세요.
-
API 세부 정보는 AWS CLI 명령 참조의 ListServiceLevelObjectives
섹션을 참조하세요.
-
다음 코드 예시는 list-service-operations
의 사용 방법을 보여 줍니다.
- AWS CLI
-
Application Signals에서 검색한 이 서비스의 작업 목록을 반환하는 방법
다음
list-service-operations
예시에서는 Application Signals에서 검색한 이 서비스의 작업 목록을 반환합니다.aws application-signals list-service-operations \ --start-time
1735017423
\ --end-time1735103823
\ --key-attributesEnvironment=generic:default,Name=payforadoption,Type=Service
출력:
{ "ServiceOperations": [{ "Name": "POST /api", "MetricReferences": [{ "Namespace": "ApplicationSignals", "MetricType": "LATENCY", "Dimensions": [{ "Name": "Environment", "Value": "generic:default" }, { "Name": "Operation", "Value": "POST /api" }, { "Name": "Service", "Value": "payforadoption" }], "MetricName": "Latency" }, { "Namespace": "ApplicationSignals", "MetricType": "FAULT", "Dimensions": [{ "Name": "Environment", "Value": "generic:default" }, { "Name": "Operation", "Value": "POST /api" }, { "Name": "Service", "Value": "payforadoption" }], "MetricName": "Fault" }, { "Namespace": "ApplicationSignals", "MetricType": "ERROR", "Dimensions": [{ "Name": "Environment", "Value": "generic:default" }, { "Name": "Operation", "Value": "POST /api" }, { "Name": "Service", "Value": "payforadoption" }], "MetricName": "Error" }] }], "StartTime": "2024-12-24T05:00:00+00:00", "EndTime": "2024-12-25T06:00:01+00:00" }
자세한 내용은 Amazon CloudWatch 사용 설명서의 Application Signals를 참조하세요.
-
API 세부 정보는 AWS CLI 명령 참조의 ListServiceOperations
섹션을 참조하세요.
-
다음 코드 예시는 list-services
의 사용 방법을 보여 줍니다.
- AWS CLI
-
Application Signals에서 검색한 서비스 목록을 반환하는 방법
다음
list-services
예시에서는 Application Signals에서 검색한 서비스 목록을 반환합니다.aws application-signals list-services \ --start-time
1734918791
\ --end-time1734965591
출력:
{ "ServiceSummaries": [{ "KeyAttributes": { "Environment": "lambda:default", "Name": "hello-world-python", "Type": "Service" }, "AttributeMaps": [{ "Lambda.Function.Name": "hello-world-python", "PlatformType": "AWS::Lambda" }], "MetricReferences": [{ "Namespace": "ApplicationSignals", "MetricType": "LATENCY", "Dimensions": [{ "Name": "Environment", "Value": "lambda:default" }, { "Name": "Service", "Value": "hello-world-python" }], "MetricName": "Latency" }, { "Namespace": "ApplicationSignals", "MetricType": "FAULT", "Dimensions": [{ "Name": "Environment", "Value": "lambda:default" }, { "Name": "Service", "Value": "hello-world-python" }], "MetricName": "Fault" }, { "Namespace": "ApplicationSignals", "MetricType": "ERROR", "Dimensions": [{ "Name": "Environment", "Value": "lambda:default" }, { "Name": "Service", "Value": "hello-world-python" }], "MetricName": "Error" }] }], "StartTime": "2024-11-27T10:00:00+00:00", "EndTime": "2024-11-27T14:00:01+00:00" }
자세한 내용은 Amazon CloudWatch 사용 설명서의 Application Signals를 참조하세요.
-
API 세부 정보는 AWS CLI 명령 참조의 ListServices
를 참조하세요.
-
다음 코드 예시는 list-tags-for-resource
의 사용 방법을 보여 줍니다.
- AWS CLI
-
CloudWatch 리소스에 연결된 태그를 표시하는 방법
다음
list-tags-for-resource
예시에서는 CloudWatch 리소스와 연결된 태그를 표시합니다.aws application-signals list-tags-for-resource \ --resource-arn
"arn:aws:application-signals:us-east-1:123456789101:slo/SLOName"
출력:
{ "Tags": [{ "Key": "test", "Value": "value" }] }
자세한 내용은 Amazon CloudWatch 사용 설명서의 Application Signals를 참조하세요.
-
API 세부 정보는 AWS CLI 명령 참조의 ListTagsForResource
를 참조하세요.
-
다음 코드 예시는 start-discovery
의 사용 방법을 보여 줍니다.
- AWS CLI
-
이 Amazon Web Services 계정이 CloudWatch Application Signals를 사용할 수 있도록 하는 방법
다음
start-discovery
예시에서는 AWSServiceRoleForCloudWatchApplicationSignals 서비스 연결 역할을 생성하여 이 Amazon Web Services 계정이 CloudWatch Application Signals를 사용할 수 있도록 합니다.aws application-signals start-discovery
이 명령은 출력을 생성하지 않습니다.
자세한 내용은 Amazon CloudWatch 사용 설명서의 Application Signals를 참조하세요.
-
API 세부 정보는 AWS CLI 명령 참조의 StartDiscovery
섹션을 참조하세요.
-
다음 코드 예시는 tag-resource
의 사용 방법을 보여 줍니다.
- AWS CLI
-
서비스 수준 목표와 같은 지정된 CloudWatch 리소스에 하나 이상의 태그(키-값 페어)를 할당하는 방법
다음
tag-resource
예시에서는 서비스 수준 목표와 같은 지정된 CloudWatch 리소스에 하나 이상의 태그(키-값 페어)를 할당합니다.aws application-signals tag-resource \ --resource-arn
"arn:aws:application-signals:us-east-1:123456789101:slo/SLOName"
\ --tags '{"Key":"test","Value":"value"}
'이 명령은 출력을 생성하지 않습니다.
자세한 내용은 Amazon CloudWatch 사용 설명서의 Application Signals를 참조하세요.
-
API 세부 정보는 AWS CLI 명령 참조의 TagResource
를 참조하세요.
-
다음 코드 예시는 untag-resource
의 사용 방법을 보여 줍니다.
- AWS CLI
-
지정된 리소스에서 하나 이상의 태그를 제거하려면
다음
untag-resource
예시에서는 지정된 리소스에서 하나 이상의 태그를 제거합니다.aws application-signals untag-resource \ --resource-arn
"arn:aws:application-signals:us-east-1:123456789101:slo/SLOName"
\ --tag-keys"test"
이 명령은 출력을 생성하지 않습니다.
자세한 내용은 Amazon CloudWatch 사용 설명서의 Application Signals를 참조하세요.
-
API 세부 정보는 AWS CLI 명령 참조의 UntagResource
를 참조하세요.
-
다음 코드 예시는 update-service-level-objective
의 사용 방법을 보여 줍니다.
- AWS CLI
-
기존 서비스 수준 목표(SLO)를 업데이트하는 방법
다음
update-service-level-objective
예시에서는 기존 서비스 수준 목표(SLO)를 업데이트합니다.aws application-signals update-service-level-objective \ --cli-input-json
file://update-slo.json
update-slo.json
의 콘텐츠:{ "id": "arn:aws:application-signals:us-east-1:123456789101:slo/SLOName", "goal": { "Interval": { "RollingInterval": { "DurationUnit": "DAY", "Duration": 7 } }, "AttainmentGoal": 90.0, "WarningThreshold": 50.0 } }
출력:
{ "Slo": { "Arn": "arn:aws:application-signals:us-east-1:123456789101:slo/SLOName", "Name": "SLOName", "Description": "Description of your SLO", "CreatedTime": "2024-12-24T22:19:18.624000+05:30", "LastUpdatedTime": "2024-12-27T08:51:38.278000+05:30", "Sli": { "SliMetric": { "MetricDataQueries": [{ "Id": "m1", "MetricStat": { "Metric": { "Namespace": "AWS/EC2", "MetricName": "CPUUtilization", "Dimensions": [{ "Name": "InstanceId", "Value": "i-00987654345222" }] }, "Period": 60, "Stat": "Average" }, "ReturnData": true }] }, "MetricThreshold": 200.0, "ComparisonOperator": "LessThanOrEqualTo" }, "EvaluationType": "PeriodBased", "Goal": { "Interval": { "RollingInterval": { "DurationUnit": "DAY", "Duration": 7 } }, "AttainmentGoal": 90.0, "WarningThreshold": 50.0 } } }
자세한 내용은 Amazon CloudWatch 사용 설명서의 Application Signals를 참조하세요.
-
API 세부 정보는 AWS CLI 명령 참조의 UpdateServiceLevelObjective
섹션을 참조하세요.
-