Ruby überwachen

Mit der Observability-Funktion von „ Instana “ können Sie Ihre „ Ruby “-Anwendungen umfassend überwachen, um Engpässe zu erkennen und die Leistung zu optimieren.

Installieren Sie zunächst den Host-Agenten von „ Instana “ in Ihrer Umgebung. Fügen Sie dann das instana Gem zu Ihrer Anwendung hinzu. Das Gem erfasst automatisch Metriken und Traces von Ihren „ Ruby “-Instanzen, die Sie in der Benutzeroberfläche von „ Instana “ einsehen können.

Das instana Gem bietet automatisierte Code-Instrumentierung für unterstützte Technologien, eine konfigurationsfreie Zustandsüberwachung von „ Ruby “-Instanzen sowie End-to-End-Traces von Anfragen über alle Systeme hinweg.

Unterstützte Laufzeitumgebungen, Frameworks und Bibliotheken

Weitere Informationen finden Sie in der speziellen Dokumentation zu den unterstützten Versionen von „ Ruby “.

Laufzeitmetriken

Das instana Gem erfasst die folgenden Laufzeitmetriken von Ihren „ Ruby “-Instanzen:

  • Ruby-Version
  • Laufzeitargumente
  • Framework
  • Gem-Paket
  • Zeit in GC
  • Speicherbelegung
  • Heap-Slots
  • Threads

Installation

Das instana Gem ist auf Rubygems verfügbar. Wenn Sie es installieren möchten, fügen Sie folgende Zeile zum Ende der Gemfile Ihrer Anwendung hinzu:

gem 'instana'

Führen Sie dann Folgendes aus:

bundle

Oder installieren Sie es selbst als:

gem install instana
Hinweis: Wenn beim Ausführen des bundle Befehls ein Gem::RemoteFetcher::UnknownHostError timed outBundler::HTTPError Could not fetch specs from # https://rubygems.org/ Fehler auftritt, deaktivieren Sie „ IPv6 “, um den Fehler zu beheben.

Tracer-Protokolle

Zur Abfragezeit gibt die Bibliothek Folgendes aus:

Stan is on the scene.  Starting Instana instrumentation version X.X.X.

Sobald der Agent eine Verbindung zum Hostagenten hergestellt hat, gibt er Folgendes aus:

Host agent available. We're in business.

Es können auch andere Protokollnachrichten angezeigt werden, die einen Fehlerstatus angeben. Weitere Details finden Sie im Abschnitt Fehlerbehebung .

Plattformen

Sie können „ Ruby “-Anwendungen mit „ Instana “ auf den folgenden Plattformen überwachen:

Kubernetes

Der Webhook „ Instana “ ( AutoTrace ) ist eine Implementierung eines „ Kubernetes Mutating Webhook Admission Controller“, der automatisch alle erforderlichen Einstellungen vornimmt, um Ruby -Anwendungen mit Instana über einen gesamten Kubernetes -Cluster hinweg zu überwachen.

Wenn Sie sich dafür entscheiden, die Installation des Instana AutoTrace WebHook für Ihre Kubernetes-Cluster durchzuführen, müssen Sie keinen manuellen Schritt ausführen, um Ihre Ruby-Anwendungen, die in diesen Clustern ausgeführt werden, zu verfolgen.

Für Kubernetes (und andere Container-basierte Implementierungen) benötigt das Instana-Ruby-Gem eine verfügbare ip-Binärdatei (z. B. aus dem iproute2-Betriebssystempaket). Diese Anforderung wird in einer zukünftigen Version entfernt.

Konfiguration

Obwohl beim Gem keine Konfiguration für die Messdaten und das verteilte Tracing, die ohne Vorbereitungs- oder Anpassungsaufwand einsatzbereit sind, erforderlich ist, können die einzelnen Komponenten nach Bedarf konfiguriert werden. Weitere Informationen finden Sie auf der Kon figurationsseite unter „ Ruby “.

Fehlerbehebung

Bei der Überwachung von „ Ruby “-Anwendungen mit „ Instana “ können folgende Probleme auftreten:

Ruby-Sensor nicht installiert

Art des Überwachungsproblems: ruby_sensor_not_installed

Der Webhook „ Instana “ ( AutoTrace ) ist nicht installiert, und der Prozess „ Ruby “ enthält weder das instana Gem „ Ruby “ noch kann der Sensor „ Ruby “ mit dem Host-Agenten „ Instana “ kommunizieren.

Informationen zur Aktivierung der Überwachung von „ Instana “ für „ Ruby “ finden Sie im Abschnitt „Installation “. Wenn Sie sicher sind, dass entweder der Webhook Instana AutoTrace oder das Gem Ruby korrekt installiert ist, beheben Sie dieses Problem, indem Sie die Schritte unter Ruby befolgen: „Prozess wird im Dashboard für den Sensor Instana Ruby nicht angezeigt“.

Überprüfen, ob der Prozess instrumentiert ist

Wenn Sie den Webhook „ Instana “ ( AutoTrace ) verwenden und der Sensor „ Ruby “ aktiv ist, wird in den Protokollen Ihrer Anwendung die folgende Zeile angezeigt:

AutoTracing for Ruby is starting on version #<version>

Wenn diese Zeile in den Protokollen Ihrer Anwendung nicht angezeigt wird, ist die Konfiguration nicht korrekt. Weitere Informationen zur korrekten Einrichtung finden Sie unter Instana AutoTrace webhook.

Wenn Sie eine manuelle Instrumentierung ausführen, stellen Sie sicher, dass instana Gem in Ihrer Anwendung installiert und aktiv ist. Wenn der Ruby-Sensor aktiv ist, werden die folgenden Einträge in den Protokollen Ihrer Anwendung angezeigt:

Stan is on the scene.  Starting Instana instrumentation version #<version>

Wenn Ihnen dieses Protokoll nicht angezeigt wird, stimmt etwas mit der Konfiguration nicht. Weitere Informationen finden Sie in der Dokumentation zur Installation .

Wenn diese Protokollmeldung angezeigt wird, liegt höchstwahrscheinlich ein Problem mit der Netzwerkverbindung zum Host-Agenten vor; siehe den nächsten Abschnitt.

Überprüfen Sie, ob der Tracer eine Verbindung zum Hostagenten herstellen kann.

Wenn der Ruby-Tracer installiert ist (siehe den vorherigen Abschnitt), prüfen Sie, ob der Ruby-Prozess eine Verbindung zum Hostagenten auf demselben Host unter Port 42699 herstellen kann. Weitere Informationen zur erforderlichen Netzwerktransparenz finden Sie in der Dokumentation zu den Netzwerkanforderungen für den Host-Agenten von Instana.

Auf containerisierten Plattformen kommt es zunehmend zu Problemen in Verbindung mit der Netzsichtbarkeit zwischen dem Container mit der zu verfolgenden Anwendung und dem Container des Instana-Hostagenten; ein anderes Problem der gleichen Art ist, dass sich der Container der zu verfolgenden Anwendung aufgrund einer Overlay-Netzkonfiguration nicht mit dem Instana-Agentencontainer auf demselben Host verbindet.

Oft liegt das Problem darin, dass der Ruby-Tracer die falsche IP-Adresse oder den falschen DNS-Namen verwendet, um mit dem Instana-Agenten zu kommunizieren. Sie können den Ruby-Tracer anweisen, über die Umgebungsvariable INSTANA_AGENT_HOST eine bestimmte Netzadresse zu verwenden.

In sehr wenigen Fällen gab es Kunden, die ihr Netz so konfiguriert hatten, dass das Problem nicht die Netzadresse war, sondern der vom Tracer verwendete Port. Falls Sie eine Neuzuordnung von Ports benötigen, weil der Hostagent nicht auf Port 42699 sondern auf einem anderen Port empfangsbereit ist, können Sie den Tracer über die Umgebungsvariable INSTANA_AGENT_PORT anweisen, einen anderen Port zu verwenden.

Falls diese Schritte zur Fehlerbehebung nicht geholfen haben, erstellen Sie bitte ein Support-Ticket.

Interaktionen mit anderen Instrumentierungs- und Überwachungsbibliotheken

Ab dem Release 194 verwendet das instana-Gem prepend anstelle der Aliasnamenverkettung, damit es parallel mit den Instrumentierungs- und Überwachungsbibliotheken funktionieren kann. Das bedeutet: Wenn mehrere Bibliotheken ihre Instrumentierung einer Zielmethode voranstellen, wird die Instrumentierung in der richtigen Reihenfolge ausgelöst.

Wenn Sie eine Methode, die vom instana -Gem instrumentiert wird, explizit mit einem Alias verketten müssen oder Sie eine Bibliothek verwenden, die die Aliasverkettung für Sie übernimmt, muss die explizite Aliasverkettung oder das Laden der Bibliothek, die die Aliasverkettung ausführt, nach dem Laden des instana -Gems erfolgen. Andernfalls funktioniert die instana-Instrumentierung nicht.

Andere Probleme

Ist etwas Unerwartetes aufgetreten oder haben Sie Schwierigkeiten bei dem Versuch, etwas zu konfigurieren? Weitere Informationen finden Sie auf der Seite zur Fehlerbehebung für „ Ruby “.