AppSignal konfigurieren
Zuerst müssen Sie Ihre AppSignal-Integration oder Ihren Standalone-Agent so konfigurieren, dass er Metriken von NGINX empfängt. Wenn Sie Ihre AppSignal-Integration mit Umgebungsvariablen konfigurieren, müssen SieAPPSIGNAL_ENABLE_NGINX_METRICS auf true setzen.
Wenn Sie Ihre AppSignal-Integration mit Konfigurationsdateien konfigurieren oder den Standalone-Agent verwenden, folgen Sie den entsprechenden Anweisungen unten, um NGINX-Metriken für Ihre Anwendung zu aktivieren:
Ruby
Fügen Sieenable_nginx_metrics: true der gewünschten Umgebung in der Datei config/appsignal.yml Ihrer Anwendung hinzu, beispielsweise der Produktionsumgebung:
Elixir
Fügen Sieenable_nginx_metrics: true Ihrem AppSignal-Konfigurationsblock hinzu, der sich üblicherweise in config/config.exs befindet:
Node.js
Fügen SieenableNginxMetrics: true Ihrer Datei appsignal.cjs hinzu:
Standalone-Agent
Fügen Sieenable_nginx_metrics = true Ihrer Konfigurationsdatei /etc/appsignal-agent.conf hinzu:
NGINX konfigurieren
Im nächsten Schritt konfigurieren Sie Ihren NGINX-Server, damit er Metriken an AppSignal sendet. In den meisten Linux-Distributionen enthält die Standard-NGINX-Konfiguration Konfigurationsdateien aus einem Konfigurationsordner, der sich häufig unter/etc/nginx/conf.d befindet. Speichern Sie die folgende Konfiguration in diesem Ordner als appsignal-metrics.conf:
Ersetzen Sie
127.0.0.1:27649 durch den Host und Port, an dem Ihre AppSignal-Integration oder Ihr eigenständiger Agent auf NGINX-Metriken lauscht.http-Block Ihrer Datei nginx.conf einbinden:
server- oder location-Block eine access_log-Direktive enthält. Um Metriken für diese Anfragen an AppSignal zu melden, müssen Sie folgende Zeile innerhalb des Blocks hinzufügen:
Shell
Ersetzen Sie
127.0.0.1:27649 durch den Host und Port, an dem Ihre AppSignal-Integration oder Ihr eigenständiger Agent auf NGINX-Metriken lauscht.access_log-Direktive im Block funktioniert weiterhin wie zuvor.
Anfrage-Gruppen konfigurieren
Indem Sie den Wert der Variable$appsignal_group innerhalb eines location- oder server-Blocks in Ihrer NGINX-Konfiguration ändern, können Sie zwischen verschiedenen Arten von Anfragen unterscheiden, die von Ihrem NGINX-Server bearbeitet werden:
Metriken deaktivieren
Sie können die Direktiveaccess_log off verwenden, um alle Zugriffsprotokolle innerhalb eines location- oder server-Blocks zu deaktivieren. Beachten Sie, dass damit alle konfigurierten Zugriffsprotokolle deaktiviert werden, nicht nur diejenigen, die als Metriken an AppSignal gesendet werden.
Um nur Metriken aus bestimmten location- oder server-Blöcken zu melden, entfernen Sie die folgende Zeile aus der Datei appsignal-metrics.conf und fügen Sie sie dann nur innerhalb der spezifischen location- oder server-Blöcke ein, von denen Sie Metriken an AppSignal melden möchten:
Ersetzen Sie
127.0.0.1:27649 durch den Host und Port, an dem Ihre AppSignal-Integration oder Ihr eigenständiger Agent auf NGINX-Metriken lauscht.access_log-Direktiven im umgebenden server- oder http-Block deaktiviert. Um diese Zugriffsprotokolle wieder zu aktivieren, wiederholen Sie deren entsprechende access_log-Direktive innerhalb des location- oder server-Blocks, in den Sie die obige Zeile eingefügt haben:
Magic Dashboard

- Anfragezeit: die Zeit, die Ihr NGINX-Server benötigt, um auf eine Anfrage zu antworten, als minütlicher Mittelwert und 95. Perzentil.
- Durchsatz: eine Zählung der von Ihrem NGINX-Server bearbeiteten Anfragen.
- Anfragelänge: die Länge der vom Client an Ihren NGINX-Server gesendeten Anfrage in Bytes, als minütlicher Mittelwert und 95. Perzentil.
- Antwortlänge: die Länge der vom NGINX-Server an den Client gesendeten Antwort in Bytes, als minütlicher Mittelwert und 95. Perzentil.
- Statuscodes: eine Zählung der Statuscodes der von Ihrem NGINX-Server gesendeten Antworten.
- Verbindungen: ein Gauge der Verbindungen, die Ihr NGINX-Server derzeit bearbeitet, einmal pro Minute gemessen und nach dem Status der Verbindung segmentiert.
- Upstream-Statuscodes: eine Zählung der Statuscodes der Antworten, die von den Upstream-Servern gesendet werden, von denen Ihr NGINX-Server proxyt.
- Upstream-Antwortzeit: die Zeit, die die Upstream-Server, von denen Ihr NGINX-Server proxyt, benötigen, um auf eine Anfrage zu antworten, als minütlicher Mittelwert und 95. Perzentil.
- Upstream-Cache-Status: der Status des Caches (z. B.
HIToderMISS) bei der Verarbeitung einer aus einem Upstream-Server gecachten Anfrage.
Metriken
Die folgenden Metriken werden von Ihrem NGINX-Server an AppSignal gesendet:nginx_status: Ein Counter, der für jede von Ihrem NGINX-Server bearbeitete Anfrage erhöht wird. Getaggt mit:status: Der Statuscode der Antwort.group: Die Anfrage-Gruppe, wie in Ihrem NGINX-Server konfiguriert.hostname: Der Hostname des Servers, der die Anfrage bearbeitet hat.
nginx_request_time: Eine Verteilung der Zeit, die für die Beantwortung jeder Anfrage benötigt wurde. Getaggt mit:group: Die Anfrage-Gruppe, wie in Ihrem NGINX-Server konfiguriert.hostname: Der Hostname des Servers, der die Anfrage bearbeitet hat.
nginx_request_length: Eine Verteilung der vom Client in der Anfrage empfangenen Bytes für jede Anfrage. Getaggt mit:group: Die Anfrage-Gruppe, wie in Ihrem NGINX-Server konfiguriert.hostname: Der Hostname des Servers, der die Anfrage bearbeitet hat.
nginx_bytes_sent: Eine Verteilung der in der Antwort an den Client gesendeten Bytes für jede Anfrage. Getaggt mit:group: Die Anfrage-Gruppe, wie in Ihrem NGINX-Server konfiguriert.hostname: Der Hostname des Servers, der die Anfrage bearbeitet hat.
proxy_pass bearbeitet wird, sind auch die folgenden Metriken vorhanden:
nginx_upstream_time: Eine Verteilung der Zeit, die für die Kommunikation mit dem Upstream-Server benötigt wurde. Getaggt mit:group: Die Anfrage-Gruppe, wie in Ihrem NGINX-Server konfiguriert.hostname: Der Hostname des Servers, der die Anfrage bearbeitet hat.upstream: Der Upstream-Server, an den die Anfrage proxyt wurde.measurement: Die spezifische gemessene Zeit:connect: Die Zeit, die zum Aufbau der Verbindung benötigt wurde.header: Die Zeit, die zum Senden des Antwort-Headers benötigt wurde.response: Die Zeit, die zum Senden der vollständigen Antwort benötigt wurde.
nginx_upstream_status: Ein Counter, der für jede an einen Upstream proxyte Anfrage erhöht wird. Getaggt mit:status: Der Statuscode der Antwort.group: Die Anfrage-Gruppe, wie in Ihrem NGINX-Server konfiguriert.hostname: Der Hostname des Servers, der die Anfrage bearbeitet hat.upstream: Der Upstream-Server, an den die Anfrage proxyt wurde.
proxy_cache zwischengespeichert wird, ist auch die folgende Metrik vorhanden:
nginx_upstream_cache_status: Ein Counter, der für jede mit aktiviertem Caching an einen Upstream proxyte Anfrage erhöht wird. Getaggt mit:status: Der Cache-Status für die Anfrage.group: Die Anfrage-Gruppe, wie in Ihrem NGINX-Server konfiguriert.hostname: Der Hostname des Servers, der die Anfrage bearbeitet hat.
ngx_http_stub_status_module gebaut wurde (wie in den meisten Linux-Distributionen bereitgestellt), ist auch die folgende Metrik vorhanden:
nginx_connections: Die Anzahl der Verbindungen, die Ihr NGINX-Server derzeit bearbeitet. Getaggt mit:hostname: Der Hostname des Servers, der die Anfrage bearbeitet hat.measurement: Die spezifische gemessene Anzahl der Verbindungen:active: Die Anzahl aktiver Verbindungen.reading: Die Anzahl der Verbindungen, bei denen die Anfrage gelesen wird.writing: Die Anzahl der Verbindungen, bei denen die Antwort geschrieben wird.waiting: Die Anzahl der inaktiven Verbindungen.