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
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.
Cloud Foundry
Die Standardinstallationsmethode funktioniert auch auf Cloud Foundry unter Verwendung des Buildpacks „ Cloud Foundry “ ( Ruby ). Darüber hinaus automatisiert das instana_buildpack seit der Tile-Version 1.177.0 die Konfiguration von Ruby-Anwendungen auf Cloud Foundry. Weitere Informationen finden Sie in der Dokumentation zum „ Instana “-Buildpack.
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 “.
Software-Development-Kits
Das Instana-Gem unterstützt ein natives Software-Development-Kit und das OpenTracing-SDK.
Natives Instana-SDK
- https://github.com/instana/ruby-sensor
- Siehe Abschnitt Installation .
- Beispiele
OpenTracing
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 “.