Skip to content

Commit 2d61fbb

Browse files
Merge pull request #280660 from PatAltimore/patricka-mq-diagnostics-release-aio-july-updates
MQTT broker diagnostics changes
2 parents b5eb35f + b19c4c4 commit 2d61fbb

File tree

5 files changed

+67
-111
lines changed

5 files changed

+67
-111
lines changed

articles/iot-operations/.openpublishing.redirection.iot-operations.json

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@
1212
},
1313
{
1414
"source_path_from_root": "/articles/iot-operations/manage-mqtt-connectivity/howto-configure-diagnostics.md",
15-
"redirect_url": "/azure/iot-operations/configure-observability-monitoring/howto-configure-diagnostics",
15+
"redirect_url": "/azure/iot-operations/manage-mqtt-broker/howto-configure-availability-scale",
1616
"redirect_document_id": false
1717
},
1818
{
@@ -202,8 +202,8 @@
202202
},
203203
{
204204
"source_path_from_root": "/articles/iot-operations/monitor/howto-configure-diagnostics.md",
205-
"redirect_url": "/azure/iot-operations/configure-observability-monitoring/howto-configure-diagnostics",
206-
"redirect_document_id": true
205+
"redirect_url": "/azure/iot-operations/manage-mqtt-broker/howto-configure-availability-scale",
206+
"redirect_document_id": false
207207
},
208208
{
209209
"source_path_from_root": "/articles/iot-operations/monitor/howto-clean-up-observability-resources.md",

articles/iot-operations/configure-observability-monitoring/howto-configure-diagnostics.md

Lines changed: 0 additions & 64 deletions
This file was deleted.

articles/iot-operations/manage-mqtt-broker/howto-configure-availability-scale.md

Lines changed: 62 additions & 40 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ ms.topic: how-to
77
ms.subservice: azure-mqtt-broker
88
ms.custom:
99
- ignite-2023
10-
ms.date: 07/02/2024
10+
ms.date: 07/11/2024
1111

1212
#CustomerIntent: As an operator, I want to understand the settings for the MQTT broker so that I can configure it for high availability and scale.
1313
---
@@ -133,41 +133,43 @@ Then, run the following command to deploy the broker:
133133
kubectl apply -f <path-to-yaml-file>
134134
```
135135

136-
## Configure MQ broker diagnostic settings
136+
## Configure MQTT broker diagnostic settings
137+
138+
MQTT broker includes diagnostics that provides metrics for MQTT broker components. Operators can use these metrics to monitor the health of the system. A Prometheus endpoint is provided for metrics from all MQTT broker components including self-test metrics.
139+
140+
Diagnostic settings allow you to enable metrics and tracing for MQTT broker.
141+
142+
- Metrics provide information about the resource utilization and throughput of MQTT broker.
143+
- Tracing provides detailed information about the requests and responses handled by MQTT broker.
144+
- Adjust the log level of MQTT broker to control the amount and detail of information that is logged. The log level can be set for different components of MQTT broker. The default log level is `info`.
145+
146+
You can configure diagnostics using the *Broker* custom resource definition (CRD). The following table shows the properties of the broker diagnostic settings and all default values.
147+
148+
| Name | Format | Default | Description |
149+
| ------------------------------------ | ---------------- | ------- | --------------------------------------------------------------- |
150+
| logs.exportIntervalSeconds | integer | 30 | How often to export the logs to the open telemetry collector |
151+
| logs.exportLogLevel | string | error | The level of logs to export |
152+
| logs.level | string | info | The log level. For example, `debug`, `info`, `warn`, `error`, `trace` |
153+
| logs.openTelemetryCollectorAddress | string | | The open telemetry collector endpoint where to export |
154+
| metrics.exportIntervalSeconds | integer | 30 | How often to export the metrics to the open telemetry collector |
155+
| metrics.mode | MetricsEnabled | Enabled | The toggle to enable/disable metrics. |
156+
| metrics.openTelemetryCollectorAddress| string | | The open telemetry collector endpoint where to export |
157+
| metrics.prometheusPort | integer | 9600 | The prometheus port to expose the metrics |
158+
| metrics.stalenessTimeSeconds | integer | 600 | The time used to determine if a metric is stale and drop from the metrics cache |
159+
| metrics.updateIntervalSeconds | integer | 30 | How often to refresh the metrics |
160+
| selfcheck.intervalSeconds | integer | 30 | The self check interval |
161+
| selfcheck.mode | SelfCheckMode | Enabled | The toggle to enable/disable self check |
162+
| selfcheck.timeoutSeconds | integer | 15 | The timeout for self check |
163+
| traces.cacheSizeMegabytes | integer | 16 | The cache size in megabytes |
164+
| traces.exportIntervalSeconds | integer | 30 | How often to export the metrics to the open telemetry collector |
165+
| traces.mode | TracesMode | Enabled | The toggle to enable/disable traces |
166+
| traces.openTelemetryCollectorAddress | string | | The open telemetry collector endpoint where to export |
167+
| traces.selfTracing | SelfTracing | | The self tracing properties |
168+
| traces.spanChannelCapacity | integer | 1000 | The span channel capacity |
169+
170+
Here's an example of a *Broker* custom resource with diagnostics settings enabled:
137171

138-
Diagnostic settings allow you to enable metrics and tracing for MQ broker.
139-
140-
- Metrics provide information about the resource utilization and throughput of MQ broker.
141-
- Tracing provides detailed information about the requests and responses handled by MQ broker.
142-
143-
To enable these features, first [Configure the MQ diagnostic service settings](../configure-observability-monitoring/howto-configure-diagnostics.md).
144-
145-
To override default diagnostic settings for MQ broker, update the `spec.diagnostics` section in the Broker CR. You also need to specify the diagnostic service endpoint, which is the address of the service that collects and stores the metrics and traces. The default endpoint is `aio-mq-diagnostics-service :9700`.
146-
147-
You can also adjust the log level of MQ broker to control the amount and detail of information that is logged. The log level can be set for different components of MQ broker. The default log level is `info`.
148-
149-
If you don't specify settings, default values are used. The following table shows the properties of the broker diagnostic settings and all default values.
150-
151-
| Name | Required | Format | Default| Description |
152-
| ------------------------------------------ | -------- | ---------------- | -------|----------------------------------------------------------|
153-
| `diagnosticServiceEndpoint` | true | String | N/A |An endpoint to send metrics/ traces to |
154-
| `enableMetrics` | false | Boolean | true |Enable or disable broker metrics |
155-
| `enableTracing` | false | Boolean | true |Enable or disable tracing |
156-
| `logLevel` | false | String |`info` |Log level. `trace`, `debug`, `info`, `warn`, or `error` |
157-
| `enableSelfCheck` | false | Boolean | true |Component that periodically probes the health of broker |
158-
| `enableSelfTracing` | false | Boolean | true |Automatically traces incoming messages at a frequency of 1 every `selfTraceFrequencySeconds` |
159-
| `logFormat` | false | String |`text` |Log format in `json` or `text` |
160-
| `metricUpdateFrequencySeconds` | false | Integer | 30 |The frequency to send metrics to diagnostics service endpoint, in seconds |
161-
| `selfCheckFrequencySeconds` | false | Integer | 30 |How often the probe sends test messages|
162-
| `selfCheckTimeoutSeconds` | false | Integer | 15 |Timeout interval for probe messages |
163-
| `selfTraceFrequencySeconds` | false | Integer | 30 |How often to automatically trace external messages if `enableSelfTracing` is true |
164-
| `spanChannelCapacity` | false | Integer | 1000 |Maximum number of spans that selftest can store before sending to the diagnostics service |
165-
| `probeImage` | true | String |mcr.microsoft.com/azureiotoperations/diagnostics-probe:0.4.0-preview | Image used for self check |
166-
167-
168-
Here's an example of a Broker CR with metrics and tracing enabled and self-check disabled:
169-
170-
```yml
172+
```yaml
171173
apiVersion: mq.iotoperations.azure.com/v1beta1
172174
kind: Broker
173175
metadata:
@@ -176,11 +178,31 @@ metadata:
176178
spec:
177179
mode: auto
178180
diagnostics:
179-
diagnosticServiceEndpoint: diagnosticservices.mq.iotoperations:9700
180-
enableMetrics: true
181-
enableTracing: true
182-
enableSelfCheck: false
183-
logLevel: debug,hyper=off,kube_client=off,tower=off,conhash=off,h2=off
181+
logs:
182+
exportIntervalSeconds: 220
183+
exportLogLevel: nym
184+
level: debug
185+
openTelemetryCollectorAddress: acfqqatmodusdbzgomgcrtulvjy
186+
metrics:
187+
stalenessTimeSeconds: 463
188+
mode: Enabled
189+
exportIntervalSeconds: 246
190+
openTelemetryCollectorAddress: vyasdzsemxfckcorfbfx
191+
prometheusPort: 60607
192+
updateIntervalSeconds: 15
193+
selfCheck:
194+
mode: Enabled
195+
intervalSeconds: 106
196+
timeoutSeconds: 70
197+
traces:
198+
cacheSizeMegabytes: 97
199+
mode: Enabled
200+
exportIntervalSeconds: 114
201+
openTelemetryCollectorAddress: oyujxiemzlqlcsdamytj
202+
selfTracing:
203+
mode: Enabled
204+
intervalSeconds: 179
205+
spanChannelCapacity: 47152
184206
```
185207
186208
## Configure encryption of internal traffic

articles/iot-operations/toc.yml

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -185,8 +185,6 @@ items:
185185
href: configure-observability-monitoring/howto-add-cluster.md
186186
- name: Clean up observability resources
187187
href: configure-observability-monitoring/howto-clean-up-observability-resources.md
188-
- name: Configure MQ diagnostic service settings
189-
href: configure-observability-monitoring/howto-configure-diagnostics.md
190188
- name: Create edge apps
191189
items:
192190
- name: Edge apps overview

articles/iot-operations/troubleshoot/known-issues.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ ms.author: dobett
66
ms.topic: troubleshooting-known-issue
77
ms.custom:
88
- ignite-2023
9-
ms.date: 05/03/2024
9+
ms.date: 07/11/2024
1010
---
1111

1212
# Known issues: Azure IoT Operations Preview
@@ -36,7 +36,7 @@ This article lists the known issues for Azure IoT Operations Preview.
3636

3737
- You can't configure the size of a disk-backed buffer unless your chosen storage class supports it.
3838

39-
- Even though the MQTT broker's [diagnostic service](../configure-observability-monitoring/howto-configure-diagnostics.md) produces telemetry on its own topic, you might still get messages from the self-test when you subscribe to `#` topic.
39+
- Even though the MQTT broker's [diagnostics](../manage-mqtt-broker/howto-configure-availability-scale.md#configure-mqtt-broker-diagnostic-settings) produces telemetry on its own topic, you might still get messages from the self-test when you subscribe to `#` topic.
4040

4141
- Some clusters that have slow Kubernetes API calls may result in selftest ping failures: `Status {Failed}. Probe failed: Ping: 1/2` from running `az iot ops check` command.
4242

0 commit comments

Comments
 (0)