You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: articles/iot-operations/configure-observability-monitoring/howto-configure-observability-manual.md
+11Lines changed: 11 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -30,18 +30,21 @@ az provider register -n "Microsoft.AlertsManagement"
30
30
```
31
31
32
32
## Install Azure Monitor managed service for Prometheus
33
+
33
34
Azure Monitor managed service for Prometheus is a component of Azure Monitor Metrics. This managed service provides flexibility in the types of metric data that you can collect and analyze with Azure Monitor. Prometheus metrics share some features with platform and custom metrics. Prometheus metrics also use some different features to better support open-source tools such as PromQL and Grafana.
34
35
35
36
Azure Monitor managed service for Prometheus allows you to collect and analyze metrics at scale using a Prometheus-compatible monitoring solution. This fully managed service is based on the Prometheus project from the Cloud Native Computing Foundation (CNCF). The service allows you to use the Prometheus query language (PromQL) to analyze and alert on the performance of monitored infrastructure and workloads, without having to operate the underlying infrastructure.
36
37
37
38
To set up Prometheus metrics collection for the new Arc-enabled cluster, follow the steps in [Configure Prometheus metrics collection](howto-configure-observability.md#configure-prometheus-metrics-collection).
38
39
39
40
## Install Container Insights
41
+
40
42
Container Insights monitors the performance of container workloads deployed to the cloud. It gives you performance visibility by collecting memory and processor metrics from controllers, nodes, and containers that are available in Kubernetes through the Metrics API. After you enable monitoring from Kubernetes clusters, metrics and container logs are automatically collected through a containerized version of the Log Analytics agent for Linux. Metrics are sent to the metrics database in Azure Monitor. Log data is sent to your Log Analytics workspace.
41
43
42
44
To monitor container workload performance, complete the steps to [enable container insights](/azure/azure-monitor/containers/kubernetes-monitoring-enable).
43
45
44
46
## Install Grafana
47
+
45
48
Azure Managed Grafana is a data visualization platform built on top of the Grafana software by Grafana Labs. Azure Managed Grafana is a fully managed Azure service operated and supported by Microsoft. Grafana helps you bring together metrics, logs and traces into a single user interface. With its extensive support for data sources and graphing capabilities, you can view and analyze your application and infrastructure telemetry data in real-time.
46
49
47
50
Azure IoT Operations provides a collection of dashboards designed to give you many of the visualizations you need to understand the health and performance of your Azure IoT Operations deployment.
@@ -54,6 +57,14 @@ To install Azure Managed Grafana, complete the following steps:
54
57
55
58
1. Configure the dashboards by following the steps in [Deploy dashboards to Grafana](howto-configure-observability.md#deploy-dashboards-to-grafana).
56
59
60
+
## Install OpenTelemetry (OTel) Collector
61
+
62
+
OpenTelemetry Collector is a key component in the OpenTelemetry project, which is an open-source observability framework aimed at providing unified tracing, metrics, and logging for distributed systems. The collector is designed to receive, process, and export telemetry data from multiple sources, such as applications and infrastructure, and send it to a monitoring backend. This OTel Collector collects metrics from Azure IoT Operations and makes it available to use with other observability tooling like Azure Monitor managed service for Prometheus, Container Insights, and Grafana.
63
+
64
+
To install OTel collector, complete the following steps:
Copy file name to clipboardExpand all lines: articles/iot-operations/configure-observability-monitoring/howto-configure-observability.md
+5-91Lines changed: 5 additions & 91 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -39,101 +39,15 @@ az provider register -n "Microsoft.AlertsManagement"
39
39
40
40
## Install observability components
41
41
42
-
The steps in this section install shared monitoring resources and configure your Arc enabled cluster to emit observability signals to these resources. The shared monitoring resources include Azure Managed Grafana, Azure Monitor Workspace, Azure Managed Prometheus, Azure Log Analytics, and Container Insights. In this section, you also deploy an [OpenTelemetry (Otel) Collector](https://opentelemetry.io/docs/collector/)
42
+
The steps in this section deploy an [OpenTelemetry (OTel) Collector](https://opentelemetry.io/docs/collector/) and then install shared monitoring resources and configure your Arc enabled cluster to emit observability signals to these resources. The shared monitoring resources include Azure Managed Grafana, Azure Monitor Workspace, Azure Managed Prometheus, Azure Log Analytics, and Container Insights.
43
43
44
-
1. Clone or download the Azure IoT Operations repo to your local machine: [azure-iot-operations.git](https://github.com/Azure/azure-iot-operations.git).
44
+
### Deploy OpenTelemetry Collector
45
45
46
-
> [!NOTE]
47
-
> The repo contains the deployment definition of Azure IoT Operations, and samples that include the sample dashboards used in this article.
48
-
49
-
1. Browse to the following path in your local copy of the repo:
50
-
51
-
*azure-iot-operations\tools\setup-3p-obs-infra*
52
-
53
-
1. Create a file called `otel-collector-values.yaml` and past the following code into it to define an OpenTelemetry Collector:
1. Deploy the observability components by running one of the following commands. Use the subscription ID and resource group of the Arc-enabled cluster that you want to monitor.
50
+
- Deploy the observability components by running one of the following commands. Use the subscription ID and resource group of the Arc-enabled cluster that you want to monitor.
137
51
138
52
> [!NOTE]
139
53
> To discover other optional parameters you can set, see the [bicep file](https://github.com/Azure/azure-iot-operations/blob/main/tools/setup-3p-obs-infra/observability-full.bicep). The optional parameters can specify things like alternative locations for cluster resources.
Copy file name to clipboardExpand all lines: articles/iot-operations/deploy-iot-ops/howto-deploy-iot-operations.md
+1-1Lines changed: 1 addition & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -123,7 +123,7 @@ Azure IoT Operations requires a schema registry on your cluster. Schema registry
123
123
| --------- | ----- | ----------- |
124
124
|`--no-progress`|| Disables the deployment progress display in the terminal. |
125
125
|`--enable-fault-tolerance`|`false`, `true`| Enables fault tolerance for Azure Arc Container Storage. At least three cluster nodes are required. |
126
-
|`--ops-config`|`observability.metrics.openTelemetryCollectorAddress="<FULLNAMEOVERRIDE>.azure-iot-operations.svc.cluster.local:<GRPC_ENDPOINT>`| If you followed the optional prerequisites to prepare your cluster for observability, provide the OpenTelemetry (OTel) collector address you configured in the otel-collector-values.yaml file.<br><br>The sample values used in [Configure observability](../configure-observability-monitoring/howto-configure-observability.md) are **fullnameOverride=aio-otel-collector** and **grpc.enpoint=4317**. |
126
+
|`--ops-config`|`observability.metrics.openTelemetryCollectorAddress=<FULLNAMEOVERRIDE>.azure-iot-operations.svc.cluster.local:<GRPC_ENDPOINT>`| If you followed the optional prerequisites to prepare your cluster for observability, provide the OpenTelemetry (OTel) collector address you configured in the otel-collector-values.yaml file.<br><br>The sample values used in [Configure observability](../configure-observability-monitoring/howto-configure-observability.md) are **fullnameOverride=aio-otel-collector** and **grpc.enpoint=4317**. |
127
127
|`--ops-config`|`observability.metrics.exportInternalSeconds=<CHECK_INTERVAL>`| If you followed the optional prerequisites to prepare your cluster for observability, provide the **check_interval** value you configured in the otel-collector-values.yaml file.<br><br>The sample value used in [Configure observability](../configure-observability-monitoring/howto-configure-observability.md) is **check_interval=60**. |
128
128
129
129
1. Deploy Azure IoT Operations. This command takes several minutes to complete:
1. Clone or download the Azure IoT Operations repo to your local machine: [azure-iot-operations.git](https://github.com/Azure/azure-iot-operations.git).
12
+
13
+
> [!NOTE]
14
+
> The repo contains the deployment definition of Azure IoT Operations, and samples that include the sample dashboards used in this article.
15
+
16
+
1. Browse to the following path in your local copy of the repo:
17
+
18
+
*azure-iot-operations\tools\setup-3p-obs-infra*
19
+
20
+
1. Create a file called `otel-collector-values.yaml` and paste the following code into it to define an OpenTelemetry Collector:
21
+
22
+
```yml
23
+
mode: deployment
24
+
fullnameOverride: aio-otel-collector
25
+
image:
26
+
repository: otel/opentelemetry-collector
27
+
tag: 0.107.0
28
+
config:
29
+
processors:
30
+
memory_limiter:
31
+
limit_percentage: 80
32
+
spike_limit_percentage: 10
33
+
check_interval: '60s'
34
+
receivers:
35
+
jaeger: null
36
+
prometheus: null
37
+
zipkin: null
38
+
otlp:
39
+
protocols:
40
+
grpc:
41
+
endpoint: ':4317'
42
+
http:
43
+
endpoint: ':4318'
44
+
exporters:
45
+
prometheus:
46
+
endpoint: ':8889'
47
+
resource_to_telemetry_conversion:
48
+
enabled: true
49
+
service:
50
+
extensions:
51
+
- health_check
52
+
pipelines:
53
+
metrics:
54
+
receivers:
55
+
- otlp
56
+
exporters:
57
+
- prometheus
58
+
logs: null
59
+
traces: null
60
+
telemetry: null
61
+
extensions:
62
+
memory_ballast:
63
+
size_mib: 0
64
+
resources:
65
+
limits:
66
+
cpu: '100m'
67
+
memory: '512Mi'
68
+
ports:
69
+
metrics:
70
+
enabled: true
71
+
containerPort: 8889
72
+
servicePort: 8889
73
+
protocol: 'TCP'
74
+
jaeger-compact:
75
+
enabled: false
76
+
jaeger-grpc:
77
+
enabled: false
78
+
jaeger-thrift:
79
+
enabled: false
80
+
zipkin:
81
+
enabled: false
82
+
```
83
+
84
+
1. In the `otel-collector-values.yaml` file, make a note of the following values that you use in the `az iot ops init` command when you deploy Azure IoT Operations on the cluster:
85
+
86
+
* **fullnameOverride**
87
+
* **grpc.endpoint**
88
+
* **check_interval**
89
+
90
+
1. Save and close the file.
91
+
92
+
1. Deploy the collector by running the following commands:
93
+
94
+
```shell
95
+
kubectl get namespace azure-iot-operations || kubectl create namespace azure-iot-operations
0 commit comments