Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions eng/versioning/version_client.txt
Original file line number Diff line number Diff line change
Expand Up @@ -527,6 +527,7 @@ com.azure.resourcemanager:azure-resourcemanager-appnetwork;1.0.0-beta.1;1.0.0-be
com.azure.resourcemanager:azure-resourcemanager-servicegroups;1.0.0-beta.2;1.0.0-beta.3
com.azure.resourcemanager:azure-resourcemanager-horizondb;1.0.0-beta.1;1.0.0-beta.1
com.azure.resourcemanager:azure-resourcemanager-relationships;1.0.0-beta.1;1.0.0-beta.2
com.azure.resourcemanager:azure-resourcemanager-monitor-slis;1.0.0-beta.1;1.0.0-beta.1
com.azure.tools:azure-sdk-archetype;1.0.0;1.2.0-beta.1
com.azure.tools:azure-sdk-build-tool;1.0.0;1.1.0-beta.1
com.azure.v2:azure-client-sdk-parent;2.0.0-beta.2;2.0.0-beta.2
Expand Down
14 changes: 14 additions & 0 deletions sdk/monitor/azure-resourcemanager-monitor-slis/CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
# Release History

## 1.0.0-beta.1 (2026-04-22)

### Features Added

- Initial preview release of `azure-resourcemanager-monitor-slis` for managing
Service Level Indicator (SLI) resources under the `Microsoft.Monitor` namespace.
- Support for SLI resource CRUD operations: create or update, get, delete, and list.
- SLI evaluation with Availability and Latency categories, supporting both
window-based and request-based evaluation types with configurable signal sources,
aggregation, and SLO baselines.
- Integration with Azure Monitor Workspace (AMW) accounts for metric emission,
with managed identity and alert support.
102 changes: 102 additions & 0 deletions sdk/monitor/azure-resourcemanager-monitor-slis/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,102 @@
# Azure Resource Manager Slis client library for Java

Azure Resource Manager Slis client library for Java.

This package contains Microsoft Azure SDK for Slis Management SDK. Package api-version 2025-03-01-preview. For documentation on how to use this package, please see [Azure Management Libraries for Java](https://aka.ms/azsdk/java/mgmt).

## We'd love to hear your feedback

We're always working on improving our products and the way we communicate with our users. So we'd love to learn what's working and how we can do better.

If you haven't already, please take a few minutes to [complete this short survey][survey] we have put together.

Thank you in advance for your collaboration. We really appreciate your time!

## Documentation

Various documentation is available to help you get started

- [API reference documentation][docs]

## Getting started

### Prerequisites

- [Java Development Kit (JDK)][jdk] with version 8 or above
- [Azure Subscription][azure_subscription]

### Adding the package to your product

[//]: # ({x-version-update-start;com.azure.resourcemanager:azure-resourcemanager-monitor-slis;current})
```xml
<dependency>
<groupId>com.azure.resourcemanager</groupId>
<artifactId>azure-resourcemanager-monitor-slis</artifactId>
<version>1.0.0-beta.1</version>
</dependency>
```
[//]: # ({x-version-update-end})

### Include the recommended packages

Azure Management Libraries require a `TokenCredential` implementation for authentication and an `HttpClient` implementation for HTTP client.

[Azure Identity][azure_identity] and [Azure Core Netty HTTP][azure_core_http_netty] packages provide the default implementation.

### Authentication

Microsoft Entra ID token authentication relies on the [credential class][azure_identity_credentials] from [Azure Identity][azure_identity] package.

Azure subscription ID can be configured via `AZURE_SUBSCRIPTION_ID` environment variable.

Assuming the use of the `DefaultAzureCredential` credential class, the client can be authenticated using the following code:

```java
AzureProfile profile = new AzureProfile(AzureCloud.AZURE_PUBLIC_CLOUD);
TokenCredential credential = new DefaultAzureCredentialBuilder()
.authorityHost(profile.getEnvironment().getActiveDirectoryEndpoint())
.build();
SlisManager manager = SlisManager
.authenticate(credential, profile);
```

The sample code assumes global Azure. Please change the `AzureCloud.AZURE_PUBLIC_CLOUD` variable if otherwise.

See [Authentication][authenticate] for more options.

## Key concepts

See [API design][design] for general introduction on design and key concepts on Azure Management Libraries.

## Examples

[Code snippets and samples](https://github.com/Azure/azure-sdk-for-java/blob/main/sdk/monitor/azure-resourcemanager-monitor-slis/SAMPLE.md)


## Troubleshooting

## Next steps

## Contributing

For details on contributing to this repository, see the [contributing guide][cg].

This project welcomes contributions and suggestions. Most contributions require you to agree to a Contributor License Agreement (CLA) declaring that you have the right to, and actually do, grant us the rights to use your contribution. For details, visit <https://cla.microsoft.com>.

When you submit a pull request, a CLA-bot will automatically determine whether you need to provide a CLA and decorate the PR appropriately (e.g., label, comment). Simply follow the instructions provided by the bot. You will only need to do this once across all repositories using our CLA.

This project has adopted the [Microsoft Open Source Code of Conduct][coc]. For more information see the [Code of Conduct FAQ][coc_faq] or contact <opencode@microsoft.com> with any additional questions or comments.

<!-- LINKS -->
[survey]: https://microsoft.qualtrics.com/jfe/form/SV_ehN0lIk2FKEBkwd?Q_CHL=DOCS
[docs]: https://azure.github.io/azure-sdk-for-java/
[jdk]: https://learn.microsoft.com/azure/developer/java/fundamentals/
[azure_subscription]: https://azure.microsoft.com/free/
[azure_identity]: https://github.com/Azure/azure-sdk-for-java/blob/main/sdk/identity/azure-identity
[azure_identity_credentials]: https://github.com/Azure/azure-sdk-for-java/tree/main/sdk/identity/azure-identity#credentials
[azure_core_http_netty]: https://github.com/Azure/azure-sdk-for-java/blob/main/sdk/core/azure-core-http-netty
[authenticate]: https://github.com/Azure/azure-sdk-for-java/blob/main/sdk/resourcemanager/docs/AUTH.md
[design]: https://github.com/Azure/azure-sdk-for-java/blob/main/sdk/resourcemanager/docs/DESIGN.md
[cg]: https://github.com/Azure/azure-sdk-for-java/blob/main/CONTRIBUTING.md
[coc]: https://opensource.microsoft.com/codeofconduct/
[coc_faq]: https://opensource.microsoft.com/codeofconduct/faq/
160 changes: 160 additions & 0 deletions sdk/monitor/azure-resourcemanager-monitor-slis/SAMPLE.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,160 @@
# Code snippets and samples


## Slis

- [CreateOrUpdate](#slis_createorupdate)
- [Delete](#slis_delete)
- [Get](#slis_get)
- [ListByParent](#slis_listbyparent)
### Slis_CreateOrUpdate

```java
import com.azure.resourcemanager.monitor.slis.fluent.models.SliInner;
import com.azure.resourcemanager.monitor.slis.models.AmwAccount;
import com.azure.resourcemanager.monitor.slis.models.Baseline;
import com.azure.resourcemanager.monitor.slis.models.BaselineProperties;
import com.azure.resourcemanager.monitor.slis.models.Category;
import com.azure.resourcemanager.monitor.slis.models.Condition;
import com.azure.resourcemanager.monitor.slis.models.ConditionOperator;
import com.azure.resourcemanager.monitor.slis.models.EvaluationCalculationType;
import com.azure.resourcemanager.monitor.slis.models.EvaluationType;
import com.azure.resourcemanager.monitor.slis.models.Signal;
import com.azure.resourcemanager.monitor.slis.models.SignalSource;
import com.azure.resourcemanager.monitor.slis.models.SliProperties;
import com.azure.resourcemanager.monitor.slis.models.SliResource;
import com.azure.resourcemanager.monitor.slis.models.SpatialAggregation;
import com.azure.resourcemanager.monitor.slis.models.SpatialAggregationType;
import com.azure.resourcemanager.monitor.slis.models.TemporalAggregation;
import com.azure.resourcemanager.monitor.slis.models.TemporalAggregationType;
import com.azure.resourcemanager.monitor.slis.models.WindowUptimeCriteria;
import com.azure.resourcemanager.monitor.slis.models.WindowUptimeCriteriaComparator;
import java.util.Arrays;

/**
* Samples for Slis CreateOrUpdate.
*/
public final class SlisCreateOrUpdateSamples {
/*
* x-ms-original-file: 2025-03-01-preview/Slis_CreateOrUpdate.json
*/
/**
* Sample code: CreateSli.
*
* @param manager Entry point to SlisManager.
*/
public static void createSli(com.azure.resourcemanager.monitor.slis.SlisManager manager) {
manager.slis()
.createOrUpdateWithResponse("testSG", "testSli", new SliInner().withProperties(new SliResource()
.withDescription("Measures the performance characteristics of the GetContosoUsers() API. ")
.withCategory(Category.LATENCY)
.withEvaluationType(EvaluationType.WINDOW_BASED)
.withDestinationAmwAccounts(Arrays.asList(new AmwAccount()
.withResourceId(
"/subscriptions/<subId>/resourcegroups/<rgId>/providers/microsoft.monitor/accounts/<dest>")
.withIdentity(
"/subscriptions/<subId>/resourcegroups/<rgId>/providers/Microsoft.ManagedIdentity/userAssignedIdentities/<idName>")))
.withBaselineProperties(new BaselineProperties().withBaseline(new Baseline().withValue(99.0)
.withEvaluationPeriodDays(30)
.withEvaluationCalculationType(EvaluationCalculationType.CALENDAR_DAYS)))
.withEnableAlert(true)
.withSliProperties(new SliProperties().withSignals(new Signal().withSignalSources(Arrays.asList(
new SignalSource().withSignalSourceId("A")
.withSourceAmwAccountManagedIdentity(
"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myResourceGroup/providers/Microsoft.ManagedIdentity/userAssignedIdentities/myIdentity")
.withSourceAmwAccountResourceId(
"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myResourceGroup/providers/microsoft.monitor/accounts/myAccount")
.withMetricNamespace("ContosoMetricsWest")
.withMetricName("Stamp1Latency")
.withFilters(Arrays.asList(new Condition().withDimensionName("ApiName")
.withOperator(ConditionOperator.EQUAL)
.withValue("GetContosoUsers")))
.withSpatialAggregation(new SpatialAggregation().withType(SpatialAggregationType.AVERAGE)
.withDimensions(Arrays.asList("Region", "ResponseCode")))
.withTemporalAggregation(new TemporalAggregation().withType(TemporalAggregationType.AVERAGE)
.withWindowSizeMinutes(5)),
new SignalSource().withSignalSourceId("B")
.withSourceAmwAccountManagedIdentity(
"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myResourceGroup/providers/Microsoft.ManagedIdentity/userAssignedIdentities/myIdentity")
.withSourceAmwAccountResourceId(
"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myResourceGroup/providers/microsoft.monitor/accounts/myAccount")
.withMetricNamespace("ContosoMetricsEast")
.withMetricName("Stamp2Latency")
.withFilters(Arrays.asList(new Condition().withDimensionName("ApiName")
.withOperator(ConditionOperator.EQUAL)
.withValue("GetContosoUsers")))
.withSpatialAggregation(new SpatialAggregation().withType(SpatialAggregationType.AVERAGE)
.withDimensions(Arrays.asList("Region", "ResponseCode")))
.withTemporalAggregation(new TemporalAggregation().withType(TemporalAggregationType.AVERAGE)
.withWindowSizeMinutes(5))))
.withSignalFormula("(A + B) /2"))
.withWindowUptimeCriteria(new WindowUptimeCriteria().withTarget(95.0)
.withComparator(WindowUptimeCriteriaComparator.GREATER_THAN_OR_EQUAL)))),
com.azure.core.util.Context.NONE);
}
}
```

### Slis_Delete

```java
/**
* Samples for Slis Delete.
*/
public final class SlisDeleteSamples {
/*
* x-ms-original-file: 2025-03-01-preview/Slis_Delete.json
*/
/**
* Sample code: DeleteSli.
*
* @param manager Entry point to SlisManager.
*/
public static void deleteSli(com.azure.resourcemanager.monitor.slis.SlisManager manager) {
manager.slis().deleteByResourceGroupWithResponse("testSG", "testSli", com.azure.core.util.Context.NONE);
}
}
```

### Slis_Get

```java
/**
* Samples for Slis Get.
*/
public final class SlisGetSamples {
/*
* x-ms-original-file: 2025-03-01-preview/Slis_Get.json
*/
/**
* Sample code: GetSli.
*
* @param manager Entry point to SlisManager.
*/
public static void getSli(com.azure.resourcemanager.monitor.slis.SlisManager manager) {
manager.slis().getWithResponse("testSG", "testSli", com.azure.core.util.Context.NONE);
}
}
```

### Slis_ListByParent

```java
/**
* Samples for Slis ListByParent.
*/
public final class SlisListByParentSamples {
/*
* x-ms-original-file: 2025-03-01-preview/Slis_ListByParent.json
*/
/**
* Sample code: SlisListByParent.
*
* @param manager Entry point to SlisManager.
*/
public static void slisListByParent(com.azure.resourcemanager.monitor.slis.SlisManager manager) {
manager.slis().listByParent("testSG", com.azure.core.util.Context.NONE);
}
}
```

74 changes: 74 additions & 0 deletions sdk/monitor/azure-resourcemanager-monitor-slis/pom.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,74 @@
<!--
~ Copyright (c) Microsoft Corporation. All rights reserved.
~ Licensed under the MIT License.
~ Code generated by Microsoft (R) TypeSpec Code Generator.
-->
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>com.azure</groupId>
<artifactId>azure-client-sdk-parent</artifactId>
<version>1.7.0</version> <!-- {x-version-update;com.azure:azure-client-sdk-parent;current} -->
<relativePath>../../parents/azure-client-sdk-parent</relativePath>
</parent>

<groupId>com.azure.resourcemanager</groupId>
<artifactId>azure-resourcemanager-monitor-slis</artifactId>
<version>1.0.0-beta.1</version> <!-- {x-version-update;com.azure.resourcemanager:azure-resourcemanager-monitor-slis;current} -->
<packaging>jar</packaging>

<name>Microsoft Azure SDK for Slis Management</name>
<description>This package contains Microsoft Azure SDK for Slis Management SDK. For documentation on how to use this package, please see https://aka.ms/azsdk/java/mgmt. Package api-version 2025-03-01-preview.</description>
<url>https://github.com/Azure/azure-sdk-for-java</url>

<licenses>
<license>
<name>The MIT License (MIT)</name>
<url>http://opensource.org/licenses/MIT</url>
<distribution>repo</distribution>
</license>
</licenses>

<scm>
<url>https://github.com/Azure/azure-sdk-for-java</url>
<connection>scm:git:git@github.com:Azure/azure-sdk-for-java.git</connection>
<developerConnection>scm:git:git@github.com:Azure/azure-sdk-for-java.git</developerConnection>
<tag>HEAD</tag>
</scm>
<developers>
<developer>
<id>microsoft</id>
<name>Microsoft</name>
</developer>
</developers>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<jacoco.min.linecoverage>0</jacoco.min.linecoverage>
<jacoco.min.branchcoverage>0</jacoco.min.branchcoverage>
<revapi.skip>true</revapi.skip>
</properties>
<dependencies>
<dependency>
<groupId>com.azure</groupId>
<artifactId>azure-core</artifactId>
<version>1.57.1</version> <!-- {x-version-update;com.azure:azure-core;dependency} -->
</dependency>
<dependency>
<groupId>com.azure</groupId>
<artifactId>azure-core-management</artifactId>
<version>1.19.3</version> <!-- {x-version-update;com.azure:azure-core-management;dependency} -->
</dependency>
<dependency>
<groupId>com.azure</groupId>
<artifactId>azure-core-test</artifactId>
<version>1.27.0-beta.14</version> <!-- {x-version-update;com.azure:azure-core-test;dependency} -->
<scope>test</scope>
</dependency>
<dependency>
<groupId>com.azure</groupId>
<artifactId>azure-identity</artifactId>
<version>1.18.2</version> <!-- {x-version-update;com.azure:azure-identity;dependency} -->
<scope>test</scope>
</dependency>
</dependencies>
</project>
Loading
Loading