Skip to content

Commit 577b28e

Browse files
author
awstools
committed
feat(client-application-signals): This release adds API support for reading Service Level Objectives and Services from monitoring accounts, from SLO and Service-scoped operations, including ListServices and ListServiceLevelObjectives.
1 parent 91fa4eb commit 577b28e

10 files changed

+103
-4
lines changed

clients/client-application-signals/src/commands/CreateServiceLevelObjectiveCommand.ts

+4
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,10 @@ export interface CreateServiceLevelObjectiveCommandOutput extends CreateServiceL
4444
* <p>The target performance quality that is defined for an SLO is the <i>attainment goal</i>.</p>
4545
* <p>You can set SLO targets for your applications that are discovered by Application Signals, using critical metrics such as latency and availability.
4646
* You can also set SLOs against any CloudWatch metric or math expression that produces a time series.</p>
47+
* <note>
48+
* <p>You can't create an SLO for a service operation that was discovered by Application Signals until after that operation has reported standard
49+
* metrics to Application Signals.</p>
50+
* </note>
4751
* <p>When you create an SLO, you specify whether it is a <i>period-based SLO</i>
4852
* or a <i>request-based SLO</i>. Each type of SLO has a different way of evaluating
4953
* your application's performance against its attainment goal.</p>

clients/client-application-signals/src/commands/GetServiceCommand.ts

+1
Original file line numberDiff line numberDiff line change
@@ -69,6 +69,7 @@ export interface GetServiceCommandOutput extends GetServiceOutput, __MetadataBea
6969
* // },
7070
* // ],
7171
* // MetricName: "STRING_VALUE", // required
72+
* // AccountId: "STRING_VALUE",
7273
* // },
7374
* // ],
7475
* // LogGroupReferences: [ // LogGroupReferences

clients/client-application-signals/src/commands/ListServiceDependenciesCommand.ts

+1
Original file line numberDiff line numberDiff line change
@@ -74,6 +74,7 @@ export interface ListServiceDependenciesCommandOutput extends ListServiceDepende
7474
* // },
7575
* // ],
7676
* // MetricName: "STRING_VALUE", // required
77+
* // AccountId: "STRING_VALUE",
7778
* // },
7879
* // ],
7980
* // },

clients/client-application-signals/src/commands/ListServiceDependentsCommand.ts

+1
Original file line numberDiff line numberDiff line change
@@ -72,6 +72,7 @@ export interface ListServiceDependentsCommandOutput extends ListServiceDependent
7272
* // },
7373
* // ],
7474
* // MetricName: "STRING_VALUE", // required
75+
* // AccountId: "STRING_VALUE",
7576
* // },
7677
* // ],
7778
* // },

clients/client-application-signals/src/commands/ListServiceLevelObjectivesCommand.ts

+2
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,8 @@ export interface ListServiceLevelObjectivesCommandOutput extends ListServiceLeve
4646
* OperationName: "STRING_VALUE",
4747
* MaxResults: Number("int"),
4848
* NextToken: "STRING_VALUE",
49+
* IncludeLinkedAccounts: true || false,
50+
* SloOwnerAwsAccountId: "STRING_VALUE",
4951
* };
5052
* const command = new ListServiceLevelObjectivesCommand(input);
5153
* const response = await client.send(command);

clients/client-application-signals/src/commands/ListServiceOperationsCommand.ts

+1
Original file line numberDiff line numberDiff line change
@@ -68,6 +68,7 @@ export interface ListServiceOperationsCommandOutput extends ListServiceOperation
6868
* // },
6969
* // ],
7070
* // MetricName: "STRING_VALUE", // required
71+
* // AccountId: "STRING_VALUE",
7172
* // },
7273
* // ],
7374
* // },

clients/client-application-signals/src/commands/ListServicesCommand.ts

+3
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,8 @@ export interface ListServicesCommandOutput extends ListServicesOutput, __Metadat
4646
* EndTime: new Date("TIMESTAMP"), // required
4747
* MaxResults: Number("int"),
4848
* NextToken: "STRING_VALUE",
49+
* IncludeLinkedAccounts: true || false,
50+
* AwsAccountId: "STRING_VALUE",
4951
* };
5052
* const command = new ListServicesCommand(input);
5153
* const response = await client.send(command);
@@ -73,6 +75,7 @@ export interface ListServicesCommandOutput extends ListServicesOutput, __Metadat
7375
* // },
7476
* // ],
7577
* // MetricName: "STRING_VALUE", // required
78+
* // AccountId: "STRING_VALUE",
7679
* // },
7780
* // ],
7881
* // },

clients/client-application-signals/src/models/models_0.ts

+38-1
Original file line numberDiff line numberDiff line change
@@ -1035,6 +1035,12 @@ export interface MetricReference {
10351035
* @public
10361036
*/
10371037
MetricName: string | undefined;
1038+
1039+
/**
1040+
* <p>Amazon Web Services account ID.</p>
1041+
* @public
1042+
*/
1043+
AccountId?: string | undefined;
10381044
}
10391045

10401046
/**
@@ -1747,6 +1753,20 @@ export interface ListServicesInput {
17471753
* @public
17481754
*/
17491755
NextToken?: string | undefined;
1756+
1757+
/**
1758+
* <p>If you are using this operation in a monitoring account, specify <code>true</code> to include services from source accounts in the returned data.
1759+
*
1760+
* </p>
1761+
* @public
1762+
*/
1763+
IncludeLinkedAccounts?: boolean | undefined;
1764+
1765+
/**
1766+
* <p>Amazon Web Services Account ID.</p>
1767+
* @public
1768+
*/
1769+
AwsAccountId?: string | undefined;
17501770
}
17511771

17521772
/**
@@ -2022,7 +2042,7 @@ export class ConflictException extends __BaseException {
20222042
* exactly 1 indicates that the SLO goal will be met exactly.</p>
20232043
* <p>For example, if you specify 60 as the number of minutes in the look-back window, the burn rate is calculated as the following:</p>
20242044
* <p>
2025-
* <i>burn rate = error rate over the look-back window / (1 - attainment goal percentage)</i>
2045+
* <i>burn rate = error rate over the look-back window / (100% - attainment goal percentage)</i>
20262046
* </p>
20272047
* <p>For more information about burn rates, see <a href="https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch-ServiceLevelObjectives.html#CloudWatch-ServiceLevelObjectives-burn">Calculate burn rates</a>.</p>
20282048
* @public
@@ -2497,6 +2517,23 @@ export interface ListServiceLevelObjectivesInput {
24972517
* @public
24982518
*/
24992519
NextToken?: string | undefined;
2520+
2521+
/**
2522+
* <p>If you are using this operation in a monitoring account, specify <code>true</code> to include SLO from source accounts in the returned data.
2523+
*
2524+
* </p>
2525+
* <p>When you are monitoring an account, you can use Amazon Web Services account ID in <code>KeyAttribute</code> filter for service source account and <code>SloOwnerawsaccountID</code> for SLO source account with <code>IncludeLinkedAccounts</code> to filter the returned data to only a single source account.
2526+
*
2527+
* </p>
2528+
* @public
2529+
*/
2530+
IncludeLinkedAccounts?: boolean | undefined;
2531+
2532+
/**
2533+
* <p>SLO's Amazon Web Services account ID.</p>
2534+
* @public
2535+
*/
2536+
SloOwnerAwsAccountId?: string | undefined;
25002537
}
25012538

25022539
/**

clients/client-application-signals/src/protocols/Aws_restJson1.ts

+7
Original file line numberDiff line numberDiff line change
@@ -288,6 +288,8 @@ export const se_ListServiceLevelObjectivesCommand = async (
288288
[_ON]: [, input[_ON]!],
289289
[_MR]: [() => input.MaxResults !== void 0, () => input[_MR]!.toString()],
290290
[_NT]: [, input[_NT]!],
291+
[_ILA]: [() => input.IncludeLinkedAccounts !== void 0, () => input[_ILA]!.toString()],
292+
[_SOAAI]: [, input[_SOAAI]!],
291293
});
292294
let body: any;
293295
body = JSON.stringify(
@@ -342,6 +344,8 @@ export const se_ListServicesCommand = async (
342344
[_ET]: [__expectNonNull(input.EndTime, `EndTime`) != null, () => __serializeDateTime(input[_ET]!).toString()],
343345
[_MR]: [() => input.MaxResults !== void 0, () => input[_MR]!.toString()],
344346
[_NT]: [, input[_NT]!],
347+
[_ILA]: [() => input.IncludeLinkedAccounts !== void 0, () => input[_ILA]!.toString()],
348+
[_AAI]: [, input[_AAI]!],
345349
});
346350
let body: any;
347351
b.m("GET").h(headers).q(query).b(body);
@@ -1234,9 +1238,12 @@ const deserializeMetadata = (output: __HttpResponse): __ResponseMetadata => ({
12341238
const collectBodyString = (streamBody: any, context: __SerdeContext): Promise<string> =>
12351239
collectBody(streamBody, context).then((body) => context.utf8Encoder(body));
12361240

1241+
const _AAI = "AwsAccountId";
12371242
const _ET = "EndTime";
1243+
const _ILA = "IncludeLinkedAccounts";
12381244
const _MR = "MaxResults";
12391245
const _NT = "NextToken";
12401246
const _ON = "OperationName";
12411247
const _RA = "ResourceArn";
1248+
const _SOAAI = "SloOwnerAwsAccountId";
12421249
const _ST = "StartTime";

0 commit comments

Comments
 (0)