|
1 | 1 | // -*- coding: utf-8 -*- |
2 | | -// IGNORE otel25 |
| 2 | +// IGNORE otel25 ClickHouse backends siloed |
3 | 3 | // NONASCII |
4 | 4 | include::global_attr.adoc[] |
5 | 5 | = The {CMK} metrics backend |
6 | 6 | :title: The {CMK} metrics backend |
7 | 7 | :description: The {CMK} metrics backend provides efficient background storage for monitoring data in dynamic environments. |
8 | 8 |
|
9 | 9 |
|
10 | | -// This block is outdated |
11 | | -// delete from here |
12 | | -[TIP] |
13 | | -==== |
14 | | -This article is currently being prepared for publication. + |
15 | | -Please be patient. Thank you! + |
16 | | -By the way, the https://docs.checkmk.com/master/de/opentelemetry.html[German version] of this article has already been updated -- if that is an alternative for you. |
17 | | -==== |
18 | | -// delete to here |
19 | | - |
20 | | - |
21 | | -// This block is new |
22 | | -// start translation |
23 | | -//// |
24 | 10 | [#intro] |
25 | | -== Einleitung |
| 11 | +== Introduction |
26 | 12 |
|
27 | | -Bislang speicherte {CMK} Metriken in Round Robin Databases (kurz RRDs), Informationen zu Ereignissen (_events_) in SQLite-Dateien und Inventardaten in JSON-Dateien. |
28 | | -Allen gemeinsam ist, dass es sich um relativ simple, dateibasierte Formate handelt, deren Größe und Performance sehr gut vorhersehbar sind, und die für die Kernaufgaben genügend Flexibilität mitbringen. |
| 13 | +Until now, {CMK} has stored metrics in Round Robin Databases (RRDs for short), event information in SQLite files, and inventory data in JSON files. |
| 14 | +What they all have in common is that they are relatively simple, file-based formats whose size and performance are highly predictable, and which offer sufficient flexibility for core tasks. |
29 | 15 |
|
30 | | -Allerdings erfüllen gerade RRDs nicht mehr alle Anforderungen eines modernen Monitoring-Systems mit vielen dynamischen Objekten. |
31 | | -So ist zwar die Abfrage einer Metrik über einen definierten Zeitraum leicht möglich, aber komplexere Abfragen wie beispielsweise die Identifikation von Zeitspannen, in denen mehrere Metriken Anomalien aufwiesen, erfordern es, große Datenmengen herauszuziehen und separat zu verarbeiten. |
32 | | -Zudem war der in {CMK} {v24} beschrittene Weg, OpenTelemetry-Daten auf "klassischem" Weg über einen Spezialagenten in {CMK} verfügbar zu machen, mit einem gewissen Overhead an Umwandlungs- und Kopiervorgängen behaftet. |
| 16 | +However, RRDs in particular no longer meet all the requirements of a modern monitoring system with many dynamic objects. |
| 17 | +While querying a metric over a defined time period is easily possible, more complex queries -- such as identifying time periods during which multiple metrics exhibited anomalies -- require extracting large volumes of data and processing them separately. |
| 18 | +Furthermore, the approach taken in {CMK} {v24} -- making OpenTelemetry data available in {CMK} via a specialized agent using 'traditional' methods -- came with a certain overhead in terms of conversion and copying operations. |
33 | 19 |
|
34 | | -Aus diesen Gründen fiel für {CMK} {v25} die Entscheidung, zunächst für OpenTelemetry-Daten eine spaltenbasierte (_column based_) Datenbank als Metrik-Backend zu verwenden. |
35 | | -Die Wahl fiel hier auf _Clickhouse_, da die Weitergabe vom OpenTelemetry Collector zur Datenbank sehr effizient vonstatten geht. |
36 | | -Spaltenbasierte Datenbanken liefern eine sehr gute Performance wenn viele Werte einer Metrik ausgelesen werden sollen – ein typischer Anwendungsfall hierfür ist beispielsweise die Erzeugung von Graphen aus Metriken. |
| 20 | +For these reasons, {CMK} {v25} decided to initially use a column-based database as the metrics backend for OpenTelemetry data. |
| 21 | +We chose _ClickHouse_ here because its data transfer from the OpenTelemetry Collector to the database is very efficient. |
| 22 | +Column-based databases deliver excellent performance when many values of a metric need to be read -- a typical use case for this is, for example, generating graphs from metrics. |
37 | 23 |
|
38 | | -In {CMK} {v25} kommt das Metrik-Backend nur für xref:opentelemetry#[OpenTelemetry-Metriken] zum Einsatz. |
39 | | -Für künftige Versionen behalten wir uns vor, das Metrik-Backend auch für weitere Monitoring-Daten ergänzend zu RRDs zu nutzen. |
40 | | -Wo RRDs ihren Zweck zufriedenstellend erfüllen, wird {CMK} diese auch in Zukunft verwenden. |
| 24 | +In {CMK} {v25}, the metrics backend is used only for xref:opentelemetry#[OpenTelemetry metrics]. |
| 25 | +For future versions, we reserve the right to use the metrics backend for additional monitoring data in addition to RRDs. |
| 26 | +Where RRDs satisfactorily fulfill their purpose, {CMK} will continue to use them in the future. |
41 | 27 |
|
42 | 28 |
|
43 | 29 | [#setup] |
44 | | -== Einrichtung |
| 30 | +== Setup |
45 | 31 |
|
46 | | -Beachten Sie, dass jegliche Verarbeitung von OpenTelemetry-_Metriken_ ein aktiviertes Metrik-Backend voraussetzt. |
| 32 | +Note that any processing of OpenTelemetry _metrics_ requires an enabled metrics backend. |
47 | 33 | ifdef::onprem[] |
48 | | -Lediglich die Weiterleitung von OpenTelemetry-_Logs_ an die xref:glossar#ec[Event Console] kommt ohne aus. |
| 34 | +Only the forwarding of OpenTelemetry _logs_ to the xref:glossar#ec[Event Console] does not require this. |
49 | 35 | endif::[] |
50 | 36 |
|
51 | | -Die Aktivierung führen Sie in den globalen Einstellungen ([.guihint]#Setup > General > Global settings > Site management > Metric backend#) durch. |
52 | | -Sofern nicht abweichend festgelegt, verwendet {CMK} drei scheinbar zufällige hohe Ports -- für die Einlieferung von Daten durch den OpenTelemetry Collector, die Abfrage von Daten und eine Web-GUI als SQL-Konsole. |
53 | | -Die verwendeten Ports werden dabei aus dem Namen der Instanz errechnet, sind also für gleich benannte {CMK}-Instanzen immer dieselben drei. |
54 | | -Auf die Web-GUI als SQL-Konsole können Sie verzichten. |
55 | | -Allerdings kann diese bei Tests hilfreich sein, daher empfehlen wir, diese zumindest solange beizubehalten, bis Sie alle Tests abgeschlossen haben. |
| 37 | +You can enable this in the global settings ([.guihint]#Setup > General > Global settings > Site management > Metric backend#). |
| 38 | +Unless otherwise specified, {CMK} uses three seemingly random high-numbered ports -- for data collection by the OpenTelemetry Collector, data querying, and a web GUI acting as an SQL console. |
| 39 | +The ports used are derived from the site's name, so they are always the same three ports for {CMK} sites with the same name. |
| 40 | + |
| 41 | +You can do without the web GUI as an SQL console. |
| 42 | +However, this can be helpful during testing, so we recommend keeping it at least until you have completed all tests. |
56 | 43 |
|
57 | 44 |
|
58 | 45 | ifdef::onprem[] |
59 | 46 | [#distributed] |
60 | | -=== Verteiltes Monitoring |
| 47 | +=== Distributed monitoring |
61 | 48 |
|
62 | | -Derzeit sind keine Weiterleitungsmechanismen im xref:glossar#distributed_monitoring[verteilten Monitoring] vorgesehen. |
63 | | -Wenn Sie also OpenTelemetry-Metriken an OpenTelemetry Collectors und damit Metrik-Backends von Remote-Instanzen schicken, können diese Metriken nur dort als Insellösung eingesehen werden. |
| 49 | +Currently, no forwarding mechanisms are planned in xref:glossar#distributed_monitoring[distributed monitoring]. |
| 50 | +Therefore, if you send OpenTelemetry metrics to OpenTelemetry Collectors and thus to metrics backends of remote sites, these metrics can only be viewed there as a siloed solution. |
64 | 51 |
|
65 | | -Für kommende Versionen von {CMK} evaluieren wir daher die Möglichkeit einer zentralen Instanz des Metrik-Backends und die Verwendung eines verteilten Clickhouse-Clusters. |
66 | | -Details können Sie rechtzeitig der Roadmap-Dokumentation entnehmen. |
| 52 | +For upcoming versions of {CMK}, we are therefore evaluating the possibility of creating a central site for the metrics backend enabling the use of a distributed ClickHouse cluster. |
| 53 | +Details will be available in the road map documentation in due course. |
67 | 54 |
|
68 | | -In {CMK} {v25} dürfte daher die Verwendung von OpenTelemetry Collector und Metrik-Backend alleine auf der Zentralinstanz der pragmatischste Ansatz sein. |
69 | | -Sollte dieser Ansatz aus Gründen der Netzwerksegmentierung nicht sinnvoll sein, können Sie OpenTelemetry Collectors und Metrik-Backends als Insellösung auch auf Remote-Instanzen betreiben. |
70 | | -Beachten Sie, dass in diesem Fall nur Daten, die den Weg über xref:opentelemetry#special_agent_option[den Spezialagenten] nehmen, im verteilten Monitoring genutzt werden können. |
71 | | -Die Verwendung von xref:opentelemetry#custom_graphs[benutzerdefinierten Graphen] ist nur an deren Quelle möglich. |
| 55 | +In {CMK} {v25}, the most pragmatic approach is likely to be using the OpenTelemetry Collector and metrics backend solely on the central site. |
| 56 | +If this approach is not feasible due to network segmentation, you can also run OpenTelemetry Collectors and metrics backends as a standalone solution on remote sites. |
| 57 | +Note that in this case, only data that passes through xref:opentelemetry#special_agent_option[the special agent] can be used in distributed monitoring. |
| 58 | +The use of xref:opentelemetry#custom_graphs[custom graphs] is only possible at their source. |
72 | 59 | endif::[] |
73 | 60 |
|
74 | 61 |
|
75 | 62 | [#troubleshooting] |
76 | | -=== Fehlersuche |
| 63 | +=== Troubleshooting |
77 | 64 |
|
78 | | -Ob Daten eingehen und diese mit erwarteten Metadaten gespeichert werden, können Sie in der SQL-Konsole von Clickhouse überprüfen. |
79 | | -Hier sind die Tabellen `checkmk.metrics_samples_*` meist diejenigen, in denen Sie stöbern werden wollen. |
| 65 | +You can confirm whether data is being received and stored with the expected metadata in the ClickHouse SQL console. |
| 66 | +The `checkmk.metrics_samples_*` tables are usually the ones you'll want to explore. |
80 | 67 |
|
81 | | -.Mit SQL-Grundlagenwissen können Sie herausfinden, ob erwartete Daten im Metrik-Backend landen |
82 | | -image::metric_backend_sql_console.png[alt="Mit SQL-Grundlagenwissen können Sie herausfinden, ob erwartete Daten im Metrik-Backend landen",fullscreen=1] |
| 68 | +.With a basic understanding of SQL you can determine whether expected data is landing in the metrics backend |
| 69 | +image::metric_backend_sql_console.png[alt=“With a basic understanding of SQL, you can determine whether expected data is landing in the metrics backend”,fullscreen=1] |
83 | 70 |
|
84 | 71 |
|
85 | 72 | [#license_calculation] |
86 | | -== Berechnungsgrundlagen für die Lizenzierung |
| 73 | +== Basics for calculating licensing |
87 | 74 |
|
88 | 75 | === Custom Metrics |
89 | 76 |
|
90 | | -Eine _Custom Metric_ entspricht der Zeitreihe von Daten, die über _Service Name_, _Metric Name_ (in der Terminologie des Metrik-Backends, respektive des OpenTelemetry Collectors) sowie weitere Attribute identifiziert werden. |
91 | | -Die aktuelle Zahl der Custom Metrics können Sie jederzeit über den Service [.guihint]#OMD otel25 metric backend# im Selbst-Monitoring Ihrer {CMK}-Instanz einsehen. |
| 77 | +A _Custom Metric_ corresponds to a time series of data identified by _Service Name_, _Metric Name_ (in the terminology of the metrics backend or the OpenTelemetry Collector), and other attributes. |
| 78 | +You can view the current number of Custom Metrics at any time via the [.guihint]#OMD otel25 metric backend# service in your {CMK} site's self-monitoring. |
92 | 79 |
|
93 | | -Die abrechnungsrelevante Anzahl der Custom Metrics wird alle 20 Minuten ermittelt. |
94 | | -Nur Custom Metrics, die innerhalb dieses 20-Minuten-Intervalls Updates erhalten haben, fließen dabei in die Zählung ein. |
95 | | -Einmal pro Tag wird ein Durchschnitt dieser Zahl über alle 20-Minuten-Intervalle der vergangenen 24 Stunden gebildet. |
96 | | -Hiervon wird wiederum am Monatsende der Monatsdurchschnitt gebildet. |
| 80 | +The billing-relevant number of Custom Metrics is determined every 20 minutes. |
| 81 | +Only Custom Metrics that have received updates within this 20-minute interval are included in the count. |
| 82 | +Once a day, an average of these numbers is calculated across all 20-minute intervals over the past 24 hours. |
| 83 | +From this, the monthly average is calculated at the end of the month. |
97 | 84 |
|
98 | 85 |
|
99 | | -=== Frequenz eingehender Daten |
| 86 | +=== Frequency of incoming data |
100 | 87 |
|
101 | 88 | ifdef::onprem[] |
102 | | -Die Frequenz eingehender Daten wird bei {UE} derzeit nur durch Ihre Hardware, Einstellungen wie das Speicherlimit des Konnektors und die Netzwerkanbindung des {CMK}-Servers limitiert. |
| 89 | +The frequency of incoming data for {UE} is currently limited only by your hardware, settings such as the connector's storage limit, and the network connection of the {CMK} server. |
103 | 90 | endif::[] |
104 | 91 |
|
105 | 92 | ifdef::saas[] |
106 | | -Die Frequenz eingehender Daten wird bei {CE} auf ein Datum pro 15 Sekunden begrenzt (bei Instanzen im Lizenzstatus „Trial“ auf ein Datum pro 30 Sekunden). |
107 | | -Treten Lastspitzen nur für wenige Minuten pro Tag auf, ziehen diese keine Drosselung eingehenden Verkehrs nach sich. |
| 93 | +For {CE}, the frequency of incoming data is limited to one data point every 15 seconds (for sites with a 'Trial' license status, one data point every 30 seconds). |
| 94 | +If traffic spikes occur for only a few minutes per day, they do not result in throttling of incoming traffic. |
108 | 95 | endif::[] |
109 | 96 |
|
110 | 97 |
|
111 | | -=== Vorhaltedauer |
| 98 | +=== Retention period |
112 | 99 |
|
113 | 100 | ifdef::onprem[] |
114 | | -Die Vorhaltedauer von Telemetriedaten ist auf 14 Tage beschränkt. |
115 | | -Dieser Wert ist derzeit in {CMK} nicht konfigurierbar. |
116 | | -Wenn Änderungen an Konfigurationsdateien vorgenommen werden, behalten wir uns vor, keinen Support zu leisten. |
| 101 | +The retention period for telemetry data is limited to 14 days. |
| 102 | +This value cannot currently be configured in {CMK}. |
| 103 | +If changes are made to configuration files, we reserve the right not to provide support. |
117 | 104 | endif::[] |
118 | 105 |
|
119 | 106 | ifdef::saas[] |
120 | | -Die Vorhaltedauer von Telemetriedaten ist auf 14 Tage beschränkt. |
121 | | -Bei Instanzen im Lizenzstatus „Trial“ beträgt die Vorhaltedauer zwei Tage. |
| 107 | +The retention period for telemetry data is limited to 14 days. |
| 108 | +For sites with a 'Trial' license status, the retention period is two days. |
122 | 109 | endif::[] |
123 | | -//// |
124 | | -// end translation |
0 commit comments