A Ruby VM (Máquina Virtual) agenda threads Ruby para execução. Em qualquer ponto, apenas uma thread por vez pode interagir com o estado da Ruby VM.
O AppSignal suporta a Ruby VM prontamente. Quando o AppSignal detecta métricas da Ruby VM, ele criará um Magic Dashboard, permitindo que você monitore métricas principais visualmente.
Magic dashboards
Os magic dashboards aparecerão na seção de dashboard do app AppSignal.
O magic dashboard da Ruby VM terá os seguintes gráficos:
| Gráfico | Métricas | Tags |
|---|
| Allocated objects | allocated_objects | hostname |
| Garbage Collection Count | minor_gc_count minor_gc_count gc_count | metrichostname |
| Heap slots | heap_live heap_free | metrichostname |
| Ruby VM | class_serialglobal_constant_stateconstant_cache_invalidations constant_cache_misses | metrichostname |
| Thread count | thread_count | hostname |
As tags fornecem um detalhamento contextual das informações de performance da Ruby VM. O AppSignal reporta as seguintes tags para performance da Ruby VM:
| Nome | Descrição |
|---|
hostname | O nome do host do qual a métrica foi reportada. |
metric | O valor total da métrica para todos os hosts. |
O AppSignal representará cada tag com uma linha colorida no gráfico:
Gráfico Allocated objects
O gráfico Allocated objects mostra quantos valores Ruby complexos (objetos, não strings, inteiros, booleanos, etc.) estão usando memória na máquina virtual Ruby.
Você pode usar o gráfico Allocated objects para monitorar e otimizar o uso de memória e a performance da sua aplicação.
Gráfico Garbage collection count
O gráfico de contagens de GC mostra a quantidade de eventos/execuções de garbage collection durante o último minuto, dividida entre eventos major e minor.
Você pode usar o gráfico de contagens de GC para monitorar a frequência do garbage collection e seu impacto na performance e no uso de memória da sua aplicação.
Gráfico Heap slots
O gráfico Heap slots mostra os heap slots atualmente alocados pela máquina virtual Ruby, divididos entre slots live e free.
Você pode usar o gráfico Heap slots para monitorar a alocação de memória e identificar as causas potenciais de memory leaks ou fragmentação.
Gráfico Ruby VM
As métricas constant_cache_misses e constant_cache_invalidations estão
disponíveis apenas nas versões Ruby 3.2.0 e superiores.
O gráfico Ruby VM mostra estatísticas do método RubyVM.stat sobre o constant cache e as classes criadas na sua aplicação.
Você pode usar o gráfico Ruby VM para monitorar o status do cache de valores constantes e como sua aplicação afeta o estado da Ruby VM.
Gráfico Thread count
O gráfico Thread count mostra o número de threads atualmente executando na sua aplicação.
Você pode usar o gráfico Thread count para monitorar o threading da sua aplicação. O Ruby VM Lock executa serialmente, o que significa que pode executar apenas uma thread por vez. Uma alta contagem de threads pode levar a problemas de performance.