Skip to content

Commit 85dd016

Browse files
authored
Merge pull request #241090 from williamzhao87/williamzhao/job-router-public-preview-update
Job Router public preview updates
2 parents 68d1b32 + 8247944 commit 85dd016

34 files changed

+4668
-793
lines changed
Lines changed: 68 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,68 @@
1+
---
2+
title: Azure Communication Services – Job Router Operational logs
3+
titleSuffix: An Azure Communication Services conceptual article
4+
description: Learn about logging for Azure Communication Services Job Router.
5+
author: nabennet
6+
services: azure-communication-services
7+
ms.author: nabennet
8+
ms.date: 07/07/2023
9+
ms.topic: conceptual
10+
ms.service: azure-communication-services
11+
ms.subservice: data
12+
---
13+
14+
# Azure Communication Services Job Router logs
15+
16+
Azure Communication Services offers logging capabilities that you can use to monitor and debug your Communication Services solution. You configure these capabilities through the Azure portal.
17+
18+
The content in this article refers to logs enabled through [Azure Monitor](../../../../azure-monitor/overview.md) (see also [FAQ](../../../../azure-monitor/faq.yml)). To enable these logs for Communication Services, see [Enable logging in diagnostic settings](../enable-logging.md).
19+
20+
## Resource log categories
21+
22+
Communication Services offers the following types of logs that you can enable:
23+
24+
* **Job Router incoming operations logs**: Provide information about incoming requests for Job Router operations. Every entry corresponds to the result of an api request to Job Router APIs, such as UpsertJob, ListClassificationPolicies, DeleteWorker, and AcceptJobOffer.
25+
26+
### ACSJobRouterIncomingOperations logs
27+
28+
Here are the properties:
29+
30+
| Property | Description |
31+
| -------- | ---------------|
32+
| `TimeGenerated` | The time stamp (UTC) of when the log was generated. |
33+
| `Level` | The severity level of the operation. |
34+
| `CorrelationId` | The ID for correlated events. Can be used to identify correlated events between multiple tables. |
35+
| `OperationName` | The operation associated with log records. |
36+
| `OperationVersion` | The API version associated with the operation or version of the operation (if there is no API version). |
37+
| `URI` | The URI of the request. |
38+
| `ResultSignature` | The substatus of the operation. If this operation corresponds to a REST API call, this field is the HTTP status code of the corresponding REST call. |
39+
| `ResultType` | The status of the operation. |
40+
| `ResultDescription` | The static text description of this operation. |
41+
| `DurationMs` | The duration of the operation in milliseconds. |
42+
| `CallerIpAddress` | The caller IP address, if the operation corresponds to an API call that comes from an entity with a publicly available IP address. |
43+
| `SdkType` | The SDK type used in the request. |
44+
| `SdkVersion` | The SDK version. |
45+
| `EntityId` | The Entity ID for the request. |
46+
| `EntityType` | The Entity Type for the request. |
47+
48+
Here's an example:
49+
50+
```json
51+
"properties"
52+
{
53+
"TimeGenerated": "2023-07-07T21:32:10.5497170Z",
54+
"Level": "Informational",
55+
"OperationName": "DeleteQueue",
56+
"OperationVersion": "2022-07-18-preview",
57+
"ResultType": "Succeeded",
58+
"ResultSignature": "204",
59+
"ResultDescription": "No Content",
60+
"DurationMs": "73.3857",
61+
"CallerIpAddress": "147.243.150.109",
62+
"CorrelationId": "6b300c18827245e3b43d3c0179d75af3",
63+
"URI": "https://jobrouter-test-resource.communication.azure.com/routing/queues/328135a9-6c1f-49eb-af32-0a477af97999?api-version=2022-07-18-preview",
64+
"SdkType": "dotnet",
65+
"EntityId": "328135a9-6c1f-49eb-af32-0a477af97999",
66+
"EntityType": "Queues"
67+
}
68+
```

articles/communication-services/concepts/metrics.md

Lines changed: 144 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,150 @@ More information on supported aggregation types and time series aggregations can
2828

2929
- **Operation** - All operations or routes that can be called on the Azure Communication Services Chat gateway.
3030
- **Status Code** - The status code response sent after the request.
31-
- **StatusSubClass** - The status code series sent after the response.
31+
- **StatusSubClass** - The status code series sent after the response.
32+
33+
### Chat API request metric operations
34+
35+
The following operations are available on Chat API request metrics:
36+
37+
| Operation / Route | Description |
38+
| -------------------- | ---------------------------------------------------------------------------------------------- |
39+
| GetChatMessage | Gets a message by message ID. |
40+
| ListChatMessages | Gets a list of chat messages from a thread. |
41+
| SendChatMessage | Sends a chat message to a thread. |
42+
| UpdateChatMessage | Updates a chat message. |
43+
| DeleteChatMessage | Deletes a chat message. |
44+
| GetChatThread | Gets a chat thread. |
45+
| ListChatThreads | Gets the list of chat threads of a user. |
46+
| UpdateChatThread | Updates a chat thread's properties. |
47+
| CreateChatThread | Creates a chat thread. |
48+
| DeleteChatThread | Deletes a thread. |
49+
| GetReadReceipts | Gets read receipts for a thread. |
50+
| SendReadReceipt | Sends a read receipt event to a thread, on behalf of a user. |
51+
| SendTypingIndicator | Posts a typing event to a thread, on behalf of a user. |
52+
| ListChatThreadParticipants | Gets the members of a thread. |
53+
| AddChatThreadParticipants | Adds thread members to a thread. If members already exist, no change occurs. |
54+
| RemoveChatThreadParticipant | Remove a member from a thread. |
55+
56+
:::image type="content" source="./media/chat-metric.png" alt-text="Screenshot of Chat API Request Metric." lightbox="./media/chat-metric.png":::
57+
58+
If a request is made to an operation that isn't recognized, you receive a "Bad Route" value response.
59+
60+
### SMS API requests
61+
62+
The following operations are available on SMS API request metrics:
63+
64+
| Operation / Route | Description |
65+
| -------------------- | ---------------------------------------------------------------------------------------------- |
66+
| SMSMessageSent | Sends an SMS message. |
67+
| SMSDeliveryReportsReceived | Gets SMS Delivery Reports |
68+
| SMSMessagesReceived | Gets SMS messages. |
69+
70+
:::image type="content" source="./media/sms-metric.png" alt-text="Screenshot of SMS API Request Metric." lightbox="./media/sms-metric.png":::
71+
72+
### Authentication API requests
73+
74+
The following operations are available on Authentication API request metrics:
75+
76+
| Operation / Route | Description |
77+
| ----------------------------- | ---------------------------------------------------------------------------------------------- |
78+
| CreateIdentity | Creates an identity representing a single user. |
79+
| DeleteIdentity | Deletes an identity. |
80+
| CreateToken | Creates an access token. |
81+
| RevokeToken | Revokes all access tokens created for an identity before a time given. |
82+
| ExchangeTeamsUserAccessToken | Exchange an Azure Active Directory (Azure AD) access token of a Teams user for a new Communication Identity access token with a matching expiration time.|
83+
84+
:::image type="content" source="./media/acs-auth-metrics.png" alt-text="Screenshot of authentication Request Metric." lightbox="./media/acs-auth-metrics.png":::
85+
86+
### Call Automation API requests
87+
88+
The following operations are available on Call Automation API request metrics:
89+
90+
| Operation / Route | Description |
91+
| -------------------- | ---------------------------------------------------------------------------------------------- |
92+
| Create Call | Create an outbound call to user.
93+
| Answer Call | Answer an inbound call. |
94+
| Redirect Call | Redirect an inbound call to another user. |
95+
| Reject Call | Reject an inbound call. |
96+
| Transfer Call To Participant | Transfer 1:1 call to another user. |
97+
| Play | Play audio to call participants. |
98+
| PlayPrompt | Play a prompt to users as part of the Recognize action. |
99+
| Recognize | Recognize user input from call participants. |
100+
| Add Participants | Add a participant to a call. |
101+
| Remove Participants | Remove a participant from a call. |
102+
| HangUp Call | Hang up your call leg. |
103+
| Terminate Call | End the call for all participants. |
104+
| Get Call | Get details about a call. |
105+
| Get Participant | Get details on a call participant. |
106+
| Get Participants | Get all participants in a call. |
107+
| Delete Call | Delete a call. |
108+
| Cancel All Media Operations | Cancel all ongoing or queued media operations in a call. |
109+
110+
### Job Router API requests
111+
112+
The following operations are available on Job Router API request metrics:
113+
114+
| Operation / Route | Description |
115+
| -------------------- | ---------------------------------------------------------------------------------------------- |
116+
| UpsertClassificationPolicy | Creates or updates a classification policy.
117+
| GetClassificationPolicy | Retrieves an existing classification policy by ID. |
118+
| ListClassificationPolicies | Retrieves existing classification policies |
119+
| DeleteDistributionPolicy | Delete a classification policy by ID. |
120+
| UpsertDistributionPolicy | Creates or updates a distribution policy.
121+
| GetDistributionPolicy | Retrieves an existing distribution policy by ID. |
122+
| ListDistributionPolicies | Retrieves existing distribution policies |
123+
| DeleteDistributionPolicy | Delete a distribution policy by ID. |
124+
| UpsertExceptionPolicy | Creates or updates an exception policy. |
125+
| GetExceptionPolicy | Retrieves an existing exception policy by ID. |
126+
| ListExceptionPolicies | Retrieves existing exception policies |
127+
| DeleteExceptionPolicy | Delete an exception policy by ID. |
128+
| UpsertQueue| Creates or updates a queue.
129+
| GetQueue | Retrieves an existing queue by ID. |
130+
| GetQueues | Retrieves existing queues |
131+
| DeleteQueue | Delete a queue by ID. |
132+
| GetQueueStatistics | Retrieves a queue's statistics. |
133+
| UpsertJob | Creates or updates a job.
134+
| GetJob | Retrieves an existing job by ID. |
135+
| GetJobs | Retrieves existing jobs |
136+
| DeleteJob | Delete a queue policy by ID. |
137+
| ReclassifyJob | Reclassify a job.
138+
| CancelJob | Submits request to cancel an existing job by ID while supplying free-form cancellation reason. |
139+
| CompleteJob | Completes an assigned job. |
140+
| CloseJob | Closes a completed job. |
141+
| AcceptJobOffer | Accepts an offer to work on a job and returns a 409/Conflict if another agent accepted the job already. |
142+
| DeclineJobOffer| Declines an offer to work on a job. |
143+
| UpsertWorker | Creates or updates a worker.
144+
| GetWorker | Retrieves an existing worker by ID. |
145+
| GetWorkers | Retrieves existing workers. |
146+
| DeleteWorker | Deletes a worker and all of its traces. |
147+
148+
### Network Traversal API requests
149+
150+
The following operations are available on Network Traversal API request metrics:
151+
152+
| Operation / Route | Description |
153+
| -------------------- | ---------------------------------------------------------------------------------------------- |
154+
| IssueRelayConfiguration | Issue configuration for an STUN/TURN server. |
155+
156+
:::image type="content" source="./media/acs-turn-metrics.png" alt-text="Screenshot of TURN Token Request Metric." lightbox="./media/acs-turn-metrics.png":::
157+
158+
### Rooms API requests
159+
160+
The following operations are available on Rooms API request metrics:
161+
162+
| Operation / Route | Description |
163+
| ----------------------------- | ---------------------------------------------------------------------------------------------- |
164+
| CreateRoom | Creates a Room. |
165+
| DeleteRoom | Deletes a Room. |
166+
| GetRoom | Gets a Room by Room ID. |
167+
| PatchRoom | Updates a Room by Room ID. |
168+
| ListRooms | Lists all the Rooms for an ACS Resource. |
169+
| AddParticipants | Adds participants to a Room.|
170+
| RemoveParticipants | Removes participants from a Room. |
171+
| GetParticipants | Gets list of participants for a Room. |
172+
| UpdateParticipants | Updates list of participants for a Room. |
173+
174+
:::image type="content" source="./media/rooms/rooms-metrics.png" alt-text="Screenshot of Rooms Request Metric." lightbox="./media/rooms/rooms-metrics.png":::
32175

33176
## Next steps
34177

articles/communication-services/concepts/reference.md

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@ ms.service: azure-communication-services
1616
# Reference documentation overview
1717

1818
## External links and docs
19+
1920
For each area, we have external pages to track and review our SDKs. You can consult the table below to find the matching page for your SDK of interest.
2021

2122
| Area | JavaScript | .NET | Python | Java SE | iOS | Android | Other |
@@ -27,6 +28,7 @@ For each area, we have external pages to track and review our SDKs. You can cons
2728
| Common | [npm](https://www.npmjs.com/package/@azure/communication-common) | [NuGet](https://www.nuget.org/packages/Azure.Communication.Common/) | N/A | [Maven](https://search.maven.org/search?q=a:azure-communication-common) | [GitHub](https://github.com/Azure/azure-sdk-for-ios/releases) | [Maven](https://search.maven.org/artifact/com.azure.android/azure-communication-common) | - |
2829
| Email | [npm](https://www.npmjs.com/package/@azure/communication-email) | [NuGet](https://www.nuget.org/packages/Azure.Communication.Email) | [PyPi](https://pypi.org/project/azure-communication-email/) | [Maven](https://search.maven.org/artifact/com.azure/azure-communication-email) | - | - | - |
2930
| Identity | [npm](https://www.npmjs.com/package/@azure/communication-identity) | [NuGet](https://www.nuget.org/packages/Azure.Communication.Identity) | [PyPi](https://pypi.org/project/azure-communication-identity/) | [Maven](https://search.maven.org/search?q=a:azure-communication-identity) | - | - | - |
31+
| Job Router | [npm](https://www.npmjs.com/package/@azure/communication-job-router) | [NuGet](https://www.nuget.org/packages/Azure.Communication.JobRouter) | [PyPi](https://pypi.org/project/azure-communication-jobrouter/) | [Maven](https://search.maven.org/search?q=a:azure-communication-jobrouter) | - | - | - |
3032
| Network Traversal | [npm](https://www.npmjs.com/package/@azure/communication-network-traversal) | [NuGet](https://www.nuget.org/packages/Azure.Communication.NetworkTraversal) | [PyPi](https://pypi.org/project/azure-communication-networktraversal/) | [Maven](https://search.maven.org/search?q=a:azure-communication-networktraversal) | - | - | - |
3133
| Phone numbers | [npm](https://www.npmjs.com/package/@azure/communication-phone-numbers) | [NuGet](https://www.nuget.org/packages/Azure.Communication.phonenumbers) | [PyPi](https://pypi.org/project/azure-communication-phonenumbers/) | [Maven](https://search.maven.org/search?q=a:azure-communication-phonenumbers) | - | - | - |
3234
| Signaling | [npm](https://www.npmjs.com/package/@azure/communication-signaling) | - | | - | - | - | - |
@@ -35,6 +37,7 @@ For each area, we have external pages to track and review our SDKs. You can cons
3537
## Class/method documentation
3638

3739
Additionally, the class/reference information for each SDK can be found below:
40+
3841
- [JavaScript](https://azure.github.io/azure-sdk-for-js/communication.html)
3942
- [.NET](https://azure.github.io/azure-sdk-for-net/communication.html)
4043
- [Java](http://azure.github.io/azure-sdk-for-java/communication.html)

articles/communication-services/concepts/router/classification-concepts.md

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ ms.service: azure-communication-services
1414

1515
# Job classification
1616

17-
[!INCLUDE [Private Preview Disclaimer](../../includes/private-preview-include-section.md)]
17+
[!INCLUDE [Public Preview Disclaimer](../../includes/public-preview-include-document.md)]
1818

1919
When you submit a job to Job Router, you can either specify the queue, priority, and worker selectors manually or you can specify a classification policy to drive these values.
2020

@@ -67,9 +67,6 @@ Once a Job has been classified, it can be reclassified in the following ways:
6767
2. You can update the Classification Policy ID of a Job, which causes Job Router to process the existing Job against the new policy.
6868
3. An Exception Policy **trigger** can take the **action** of requesting a Job be reclassified.
6969

70-
> [!NOTE]
71-
> The Job Router SDK includes an `UpdateJobLabels` method which simply updates the labels without causing the Job Router to execute the reclassification process.
72-
7370
<!-- LINKS -->
7471
[subscribe_events]: ../../how-tos/router-sdk/subscribe-events.md
7572
[job_classified_event]: ../../how-tos/router-sdk/subscribe-events.md#microsoftcommunicationrouterjobclassified

0 commit comments

Comments
 (0)