Ruby risoluzione dei problemi
È possibile seguire questi passaggi per individuare eventuali problemi che potrebbero verificarsi durante il monitoraggio delle applicazioni Ruby con Instana. La gemma " Instana " è completamente automatica, ma se dovesse verificarsi un problema, apri una richiesta di assistenza.
Componenti supportati
Prima di dedicare troppo tempo alla diagnosi di un problema, assicurati innanzitutto che il componente e l'ambiente in questione siano supportati. Un elenco di tutti i componenti supportati è disponibile alla pagina " Versioni supportate" all'indirizzo Ruby.
Aree problematiche
Potresti riscontrare i seguenti problemi:
Ruby il processo non compare nella dashboard
Per risolvere il problema, procedere come segue
Verifica che il tuo ambiente sia supportato e che tu stia utilizzando una versione supportata di Ruby.
Prima di dedicare troppo tempo alla diagnosi di un problema, assicurati innanzitutto che il componente e l'ambiente in questione siano supportati. Un elenco di tutti i componenti supportati è disponibile alla pagina " Versioni supportate" all'indirizzo Ruby.
Controlla la procedura di installazione.
Verificare che i passi di installazione siano stati seguiti correttamente.
Verifica che la gemma Instana Ruby sia installata nel pacchetto dell'applicazione.
È possibile verificare controllando
gem "instana"nell'applicazioneGemfilee verificando i riferimenti ainstananel fileGemfile.lock. In alternativa, dalla directory dell'applicazione Ruby, è possibile eseguirebundle exec gem list. Questo comando elenca tutte le gemme Ruby presenti nel pacchetto dell'applicazione. Verifica che la gemma Instana Ruby sia presente in quell'elenco.Assicurati che la gemma ` Instana ` sia aggiornata all'ultima versione.
L'ultima versione disponibile è consultabile all'indirizzo RubyGems. Nella sezione
Gemfile.lock, dovresti vedere l'ultima versione della gemma Instana Ruby indicata accanto al nome, ad esempioinstana (x.x.x).Verificare che Instana sia menzionato nell'output del log dell'applicazione.
I log dell'applicazione o del container devono sempre contenere un messaggio di avvio simile a
Stan is on the scene. Starting Instana instrumentation version x.x.xAttiva l'output di debug e ricontrolla i log dell'applicazione o del container.
Impostare la variabile d'ambiente
INSTANA_DEBUG=trueper il processo Ruby e e rivalidare i log dell'applicazione o del container (come al punto 3). Presta particolare attenzione per verificare se sono presenti messaggi di errore relativi a Instana.Controlla i log dell'agente host di Instana per verificare la presenza di eventuali messaggi relativi al processo Ruby.
Prova ad avviare l'applicazione Ruby in modalità dettagliata da una console.
Per di più, consulta la sezione "Test nell'applicazione ". Presta particolare attenzione per verificare se nell'output dell'applicazione Ruby compaiono messaggi di errore relativi a Instana.
Invia una richiesta di assistenza.
Se hai verificato tutti i passaggi precedenti e il processo " Ruby " non compare ancora nella dashboard di Instana, apri una richiesta di assistenza per ulteriori approfondimenti.
Il ticket di assistenza deve contenere:
- Dettagli sull'ambiente: piattaforma, versione di Ruby e e framework in uso
- Riepilogo di tutte le verifiche precedenti.
Nessuna traccia dell'applicazione " Ruby "
Se l'applicazione Instana Ruby è presente nella dashboard di Instana ma non sembrano esserci tracce provenienti dall'applicazione, procedere come segue:
Verifica se il tuo framework applicativo è supportato.
Verifica che i componenti utilizzati nella tua applicazione Ruby siano supportati.
Verificare se il
::Instana::Rackmiddleware è attivo.Se utilizzi un framework basato su Rack, come ad esempio un' Ruby e su Rails, assicurati che il
::Instana::Rackmiddleware sia correttamente installato come middleware. In circostanze normali, questo middleware viene installato automaticamente per vari framework.Per eseguire la convalida in un'applicazione Rails di tipo " Ruby ", è possibile eseguire il seguente comando:
bundle exec rake middlewareDevi vedere una voce relativa a
::Instana::Rack. Se devi installarlo, puoi farlo manualmente.Controlla se hai inserito in ritardo il gemma " Instana "
require => falsenel Gemfile.Si sconsiglia di caricare in ritardo il gemma Instana Ruby, poiché le procedure di avvio in diversi stack sono spesso rigide e dipendono dall'ordine di esecuzione. Un sintomo comune del caricamento ritardato è la mancanza del middleware
::Instana::RackRack, che è responsabile dell'avvio del tracciamento delle richieste in entrata.Se, per qualche motivo, preferisci comunque caricare in un secondo momento la gemma Instana Ruby, assicurati di seguire le istruzioni manuali (se necessario) relative all'installazione del middleware Rack Instana.
Attiva l'output di debug e ricontrolla i log dell'applicazione o del container.
Impostare la variabile d'ambiente
INSTANA_DEBUG=trueper il processo Ruby e e rivalidare i log dell'applicazione o del container (come al punto 3). Presta particolare attenzione per verificare se compaiono messaggi di errore relativi a Instana.Da una console applicativa, generare una traccia personalizzata.
Se tutto il resto fallisce, puoi aprire una console di applicazione ed eseguire il seguente comando per generare una traccia personalizzata:
require "instana" Instana.tracer.in_span(:my_custom_trace) do sleep 1 endSe l'operazione va a buon fine e l'output di debug è abilitato (come descritto nel passaggio precedente), nei log dell'applicazione dovrebbe comparire la seguente riga:
Instana:: Reporting 1 spansA questo punto, controlla la dashboard di Instana (nella sezione Query Analyze per un
call.span_typediSDK). Dovresti vedere una traccia denominata "my_custom_trace".Controlla i log dell'agente host di Instana per verificare la presenza di eventuali messaggi relativi al processo Ruby.
Invia una richiesta di assistenza.
Se hai verificato tutti i passaggi e le tracce di Ruby non sono ancora visibili nella dashboard di Instana, invia una richiesta di assistenza per ulteriori approfondimenti.
Il ticket di assistenza deve contenere:
- Dettagli sull'ambiente: piattaforma, versione di Ruby e e framework in uso
- Riepilogo di tutte le verifiche precedenti.
Elevato utilizzo della CPU da parte degli agenti negli ambienti containerizzati
Negli ambienti containerizzati con processi di tipo " Ruby ", che utilizzano fork come primitiva di concorrenza, l'agente può sovraccaricarsi nel tentativo di tenere traccia dei processi appena creati.
Assicurarsi che l'agente disponga di risorse sufficienti per elaborare le richieste
Se hai adottato misure per limitare la quantità di CPU e memoria richiesta dall'agente, assicurati che i limiti impostati garantiscano risorse sufficienti affinché l'agente possa portare a termine tutte le attività richieste.
Disattiva la ricerca dei processi
È anche possibile disabilitare un "percorso rapido" per l'agente aggiungendo quanto segue alla configurazione dell'agent. Questa configurazione può ridurre le risorse consumate dall'agente, ma potrebbe causare la perdita di tracce se il processo viene terminato prima di riuscire a inviare dati all'agente. Questo problema si verifica generalmente nelle applicazioni che utilizzano
forkcome primitiva di concorrenza con processi figli di breve durata.com.instana.processlookup: enabled: false
Registrazione e variabili d'ambiente
Per impostazione predefinita, la gemma registra solo i messaggi che indicano se si sono verificati dei problemi. Se si desidera un output di registrazione più dettagliato, impostare la variabile di ambiente INSTANA_DEBUG . Abilita la registrazione a livello di debug nella gemma ` Instana `.
L'immagine seguente mostra l'output della console di ` Instana `:

Nell'esempio precedente, si può notare che l'agente host non è disponibile (perché non è in esecuzione o non è stato installato). Una volta che l'agente host sarà disponibile, la gemma Instana si ricollegherà automaticamente senza alcun intervento.
Per ulteriori informazioni sui metodi di controllo dell'output di log, consultare la pagina di configurazione " Ruby ".
Test nell'applicazione
Per individuare eventuali errori della gemma ` Instana ` nella tua applicazione, spesso è sufficiente aprire la console dell'applicazione con la registrazione dettagliata per individuare i problemi.
L'immagine seguente mostra l'output della console di Rails: 
Nell'esempio precedente è possibile vedere come la gemma Instana Ruby si avvii, esegua la strumentazione di alcuni componenti e invii una notifica di esito positivo: Host agent available. We're in business.
Disattivazione di singoli componenti
Se una parte particolare della gemma (come la strumentazione) sta causando problemi, è possibile evitare temporaneamente il problema disabilitando solo quel componente. Per ulteriori informazioni su come abilitare e disabilitare i singoli componenti, consultare la pagina di configurazione di Ruby.