Naar hoofdinhoud gaan
De AppSignal-integraties en de AppSignal standalone agent kunnen metrics genereren uit de access logs van uw NGINX-server. Nadat u uw NGINX-server heeft geconfigureerd om metrics naar AppSignal te sturen, verschijnt een magic dashboard met metrics gerelateerd aan uw NGINX-server.

AppSignal configureren

Eerst moet u uw AppSignal-integratie of standalone agent configureren om metrics van NGINX te ontvangen.
Het inschakelen van NGINX-metrics opent een server waarnaar NGINX metrics kan sturen. Standaard is deze server gebonden aan localhost en luistert op poort 27649. U kunt deze instellingen wijzigen met de configuratieopties bind_address en nginx_port.Als u meerdere AppSignal-geïnstrumenteerde applicaties tegelijk op dezelfde server draait, kunt u elke applicatie configureren om op een andere poort te luisteren met de configuratieoptie nginx_port.
Als u uw AppSignal-integratie configureert met omgevingsvariabelen, moet u APPSIGNAL_ENABLE_NGINX_METRICS op true instellen. Als u uw AppSignal-integratie configureert met configuratiebestanden, of u gebruikt de standalone agent, kunt u de relevante onderstaande instructies volgen over hoe u NGINX-metrics inschakelt voor uw applicatie:

Ruby

Ondersteuning voor NGINX-metrics is toegevoegd in versie 3.3.4 van de Ruby- integratie.
Voeg enable_nginx_metrics: true toe aan de gewenste omgeving in het bestand config/appsignal.yml van uw applicatie, bijvoorbeeld de productie-omgeving:
production:
  enable_nginx_metrics: true
  # ...

Elixir

Ondersteuning voor NGINX-metrics is toegevoegd in versie 2.5.2 van de Elixir- integratie.
Voeg enable_nginx_metrics: true toe aan uw AppSignal-configuratieblok, meestal te vinden in config/config.exs:
config :appsignal, :config,
  enable_nginx_metrics: true,
  # ...

Node.js

Ondersteuning voor NGINX-metrics is toegevoegd in versie 3.0.8 van de Node.js- integratie.
Voeg enableNginxMetrics: true toe aan uw appsignal.cjs-bestand:
new Appsignal({
  enableNginxMetrics: true,
  // ...
});

Standalone agent

Ondersteuning voor NGINX-metrics is toegevoegd in versie 0.0.24 van de standalone agent.
Voeg enable_nginx_metrics = true toe aan uw configuratiebestand /etc/appsignal-agent.conf:
enable_nginx_metrics = true

NGINX configureren

De volgende stap is het configureren van uw NGINX-server om metrics naar AppSignal te sturen. In de meeste Linux-distributies bevat de standaard NGINX-configuratie configuratiebestanden uit een configuratiemap, vaak te vinden in /etc/nginx/conf.d. Sla de volgende configuratie op in die map als appsignal-metrics.conf:
map '' $appsignal_group {
  default 'http';
}

log_format appsignal_metrics '1|g=$appsignal_group;s=$status;rqt=$request_time;rql=$request_length;bs=$bytes_sent;ua=$upstream_addr;uct=$upstream_connect_time;uht=$upstream_header_time;urst=$upstream_response_time;us=$upstream_status;ucs=$upstream_cache_status;ca=$connections_active;cr=$connections_reading;cwr=$connections_writing;cwa=$connections_waiting';
access_log syslog:server=127.0.0.1:27649,tag=appsignal_nginx appsignal_metrics;
Vervang 127.0.0.1:27649 door de host en poort waar uw AppSignal-integratie of stand-alone agent naar NGINX-metrics luistert.
Als uw NGINX-configuratie geen configuratiebestanden bevat zoals hierboven beschreven, kunt u deze zelf includen vanuit het http-blok van uw nginx.conf-bestand:
http {
  include '/path/to/appsignal-metrics.conf';
  ...
}
Let op dat als een server- of location-blok een access_log-directive bevat, metrics voor verzoeken aan die server of locatie niet aan AppSignal worden gerapporteerd. Om metrics aan AppSignal te rapporteren voor die verzoeken, moet u de volgende regel binnen het blok toevoegen:
Shell
access_log syslog:server=127.0.0.1:27649,tag=appsignal_nginx appsignal_metrics;
Vervang 127.0.0.1:27649 door de host en poort waar uw AppSignal-integratie of stand-alone agent naar NGINX-metrics luistert.
De bestaande access_log-directive binnen het blok zal blijven werken zoals voorheen.

Request-groepen configureren

Door de waarde van de variabele $appsignal_group binnen een location- of server-blok in uw NGINX-configuratie te wijzigen, kunt u onderscheid maken tussen verschillende soorten verzoeken die door uw NGINX-server worden verwerkt:
location /admin {
  set $appsignal_group 'admin';
  ...
}
Metrics gerelateerd aan verzoeken worden gesegmenteerd op hun groep, en de verschillende groepen worden onafhankelijk bijgehouden in de magic dashboard-grafieken voor die metrics.

Metrics uitschakelen

U kunt de directive access_log off gebruiken om alle access logs binnen een location- of server-blok uit te schakelen. Let op dat dit alle geconfigureerde access logs uitschakelt, niet alleen die als metrics naar AppSignal worden verzonden. Om alleen metrics te rapporteren vanuit specifieke location- of server-blokken, verwijdert u de volgende regel uit het appsignal-metrics.conf-bestand en voegt u deze alleen toe binnen de specifieke location- of server-blokken waarvan u metrics aan AppSignal wilt rapporteren:
access_log syslog:server=127.0.0.1:27649,tag=appsignal_nginx appsignal_metrics;
Vervang 127.0.0.1:27649 door de host en poort waar uw AppSignal-integratie of stand-alone agent naar NGINX-metrics luistert.
Dit zal impliciet alle access logs uitschakelen van access_log-directives in het omliggende server- of http-blok. Om die access logs opnieuw in te schakelen, herhaalt u hun corresponderende access_log-directive binnen het location- of server-blok waaraan u de bovenstaande regel heeft toegevoegd:
server {
  access_log /var/log/nginx/access.log main;

  location /app {
    # this line enables AppSignal NGINX metrics for this location
    # but it also disables the access log declared in the server block
    access_log syslog:server=127.0.0.1:27649,tag=appsignal_nginx appsignal_metrics;

    # this line enables the access log declared in the server block again
    access_log /var/log/nginx/access.log main;
  }
}

Magic dashboard

Het NGINX magic dashboard De metrics die door uw NGINX-server naar AppSignal worden verzonden worden gebruikt om een magic dashboard te maken. In dit dashboard kunt u grafieken zien die nuttige metrics in de tijd weergeven, zoals:
  • Request time: de tijd die uw NGINX-server nodig heeft om op een verzoek te reageren, als per-minuut-gemiddelde en 95e percentiel.
  • Throughput: een telling van de verzoeken die door uw NGINX-server worden verwerkt.
  • Request length: de lengte in bytes van het verzoek dat uw NGINX-server van de client heeft ontvangen, als per-minuut-gemiddelde en 95e percentiel.
  • Response length: de lengte in bytes van de response die door uw NGINX-server naar de client is verzonden, als per-minuut-gemiddelde en 95e percentiel.
  • Status codes: een telling van de statuscodes van de responses die door uw NGINX-server zijn verzonden.
  • Connections: een gauge van de connections die momenteel door uw NGINX-server worden verwerkt, eenmaal per minuut gemeten en gesegmenteerd op de status van de connection.
  • Upstream status codes: een telling van de statuscodes van de responses verzonden door de upstream-servers waarvan uw NGINX-server proxiet.
  • Upstream response time: de tijd die nodig is om op een verzoek te reageren door de upstream-servers waarvan uw NGINX-server proxiet, als per-minuut-gemiddelde en 95e percentiel.
  • Upstream cache status: de status van de cache (zoals HIT of MISS) bij het verwerken van een gecached verzoek dat is geproxied van een upstream-server.
De meeste van deze grafieken zijn gesegmenteerd op de request-groep, de hostname of de relevante upstream, indien aanwezig. U kunt echter in de grafiek-editor duiken en een andere segmentatie kiezen die een nuttiger inzicht in uw gegevens biedt. Zie de onderstaande sectie voor een gedetailleerde uitsplitsing van de metrics die vanuit uw NGINX-server worden verzonden.

Metrics

De volgende metrics worden vanuit uw NGINX-server naar AppSignal verzonden:
  • nginx_status: Een counter die voor elk door uw NGINX-server verwerkt verzoek wordt opgehoogd. Getagd op:
    • status: De statuscode van de response.
    • group: De request-groep, zoals geconfigureerd in uw NGINX-server.
    • hostname: De hostname van de server die het verzoek heeft verwerkt.
  • nginx_request_time: Een distribution van de tijd die nodig is om op elk verzoek te reageren. Getagd op:
  • nginx_request_length: Een distribution van de bytes ontvangen in het verzoek van de client, voor elk verzoek. Getagd op:
  • nginx_bytes_sent: Een distribution van de bytes verzonden in de response naar de client, voor elk verzoek. Getagd op:
Als het verzoek wordt verwerkt door proxying vanaf een upstream met de NGINX-directive proxy_pass, zijn ook de volgende metrics aanwezig:
  • nginx_upstream_time: Een distribution van de tijd die nodig was om met de upstream-server te communiceren. Getagd op:
    • group: De request-groep, zoals geconfigureerd in uw NGINX-server.
    • hostname: De hostname van de server die het verzoek heeft verwerkt.
    • upstream: De upstream-server waarnaar het verzoek werd geproxied.
    • measurement: De specifieke gemeten tijd:
      • connect: De tijd die nodig was om de connection tot stand te brengen.
      • header: De tijd die nodig was om de response-header te verzenden.
      • response: De tijd die nodig was om de volledige response te verzenden.
  • nginx_upstream_status: Een counter die voor elk naar een upstream geproxied verzoek wordt opgehoogd. Getagd op:
    • status: De statuscode van de response.
    • group: De request-groep, zoals geconfigureerd in uw NGINX-server.
    • hostname: De hostname van de server die het verzoek heeft verwerkt.
    • upstream: De upstream-server waarnaar het verzoek werd geproxied.
Als het verzoek dat van een upstream wordt geproxied wordt gecached met de NGINX-directive proxy_cache, is ook de volgende metric aanwezig:
  • nginx_upstream_cache_status: Een counter die voor elk naar een upstream geproxied verzoek met caching ingeschakeld wordt opgehoogd. Getagd op:
Als uw NGINX-server is gebouwd met de NGINX-module ngx_http_stub_status_module ingeschakeld (zoals door de meeste Linux-distributies wordt aangeboden), is ook de volgende metric aanwezig:
  • nginx_connections: Het aantal connections dat uw NGINX-server momenteel verwerkt. Getagd op:
    • hostname: De hostname van de server die het verzoek heeft verwerkt.
    • measurement: Het specifieke aantal gemeten connections:
      • active: Het aantal actieve connections.
      • reading: Het aantal connections waar het verzoek wordt gelezen.
      • writing: Het aantal connections waar de response wordt geschreven.
      • waiting: Het aantal idle connections.
De connections-metric verwijst altijd naar de hostname als geheel, niet naar een specifieke groep. De waarde ervan wordt eenmaal per minuut bijgewerkt.
De voor de metrics gebruikte server-hostname is niet de NGINX-hostname-waarde, maar de hostname-waarde die voor de AppSignal-integratie of standalone- agent is geconfigureerd. Deze waarde wordt meestal automatisch geconfigureerd en kan worden overschreven met de configuratieoptie hostname.

Ondersteuning

Als u problemen ondervindt bij het configureren van de NGINX-metrics van uw applicatie, neem dan contact op met ondersteuning, en we helpen u uw metrics binnen te krijgen.