Skip to content
Back to skills

Metrics

ASecurity

Consulte métricas de uso de recursos para serviços Railway. Use quando o usuário perguntar sobre uso de recursos, CPU, memória, rede, disco ou desempenho do serviço, como "quanto de memória meu serviço está usando" ou "meu serviço está lento".

  • 11 stars
  • 0 votes
  • 0 copies
  • 3 views
  • Added September 8, 2026
devopsgoshellbashapiperformance

Works with

  • cli
  • api

Security analysis

A100/100

Scanned September 8, 2026

npx -y skills add artubss/SKILLS-CLAUDE-CODE --skill metrics --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Metrics?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Metrics
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/artubss-metrics/badge)](https://www.skillsdirectory.com/skills/artubss-metrics)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: railway-metrics
description: Consulte métricas de uso de recursos para serviços Railway. Use quando o usuário perguntar sobre uso de recursos, CPU, memória, rede, disco ou desempenho do serviço, como "quanto de memória meu serviço está usando" ou "meu serviço está lento".
version: 1.0.0
author: Railway
license: MIT
tags: [Railway, Metrics, Monitoring, Performance, CPU, Memory, Resources, Analytics]
dependencies: [railway-cli]
allowed-tools: Bash(railway:*)
---

# Métricas de Serviço Railway

Consulte métricas de uso de recursos para serviços Railway.

## Quando Usar

- Usuário pergunta "quanto de memória meu serviço está usando?"
- Usuário pergunta sobre uso de CPU, tráfego de rede, uso de disco
- Usuário quer debugar problemas de desempenho
- Usuário pergunta "meu serviço está saudável?" (combine com a skill railway-service)

## Pré-requisitos

Obtenha environmentId e serviceId do projeto vinculado:

```bash
railway status --json
```

Extraia:
- `environment.id` → environmentId
- `service.id` → serviceId (opcional - omita para obter todos os serviços)

## Valores de MetricMeasurement

| Measurement | Descrição |
|-------------|-----------|
| CPU_USAGE | Uso de CPU (cores) |
| CPU_LIMIT | Limite de CPU (cores) |
| MEMORY_USAGE_GB | Uso de memória em GB |
| MEMORY_LIMIT_GB | Limite de memória em GB |
| NETWORK_RX_GB | Rede recebida em GB |
| NETWORK_TX_GB | Rede transmitida em GB |
| DISK_USAGE_GB | Uso de disco em GB |
| EPHEMERAL_DISK_USAGE_GB | Uso de disco efêmero em GB |
| BACKUP_USAGE_GB | Uso de backup em GB |

## Valores de MetricTag (para groupBy)

| Tag | Descrição |
|-----|-----------|
| DEPLOYMENT_ID | Agrupar por deployment |
| DEPLOYMENT_INSTANCE_ID | Agrupar por instância |
| REGION | Agrupar por região |
| SERVICE_ID | Agrupar por serviço |

## Query

```graphql
query metrics(
  $environmentId: String!
  $serviceId: String
  $startDate: DateTime!
  $endDate: DateTime
  $sampleRateSeconds: Int
  $averagingWindowSeconds: Int
  $groupBy: [MetricTag!]
  $measurements: [MetricMeasurement!]!
) {
  metrics(
    environmentId: $environmentId
    serviceId: $serviceId
    startDate: $startDate
    endDate: $endDate
    sampleRateSeconds: $sampleRateSeconds
    averagingWindowSeconds: $averagingWindowSeconds
    groupBy: $groupBy
    measurements: $measurements
  ) {
    measurement
    tags {
      deploymentInstanceId
      deploymentId
      serviceId
      region
    }
    values {
      ts
      value
    }
  }
}
```

## Exemplo: CPU e Memória da Última Hora

Use heredoc para evitar problemas com escape de shell:

```bash
bash <<'SCRIPT'
START_DATE=$(date -u -v-1H +"%Y-%m-%dT%H:%M:%SZ" 2>/dev/null || date -u -d "1 hour ago" +"%Y-%m-%dT%H:%M:%SZ")
ENV_ID="your-environment-id"
SERVICE_ID="your-service-id"

VARS=$(jq -n \
  --arg env "$ENV_ID" \
  --arg svc "$SERVICE_ID" \
  --arg start "$START_DATE" \
  '{environmentId: $env, serviceId: $svc, startDate: $start, measurements: ["CPU_USAGE", "MEMORY_USAGE_GB"]}')

${CLAUDE_PLUGIN_ROOT}/skills/lib/railway-api.sh \
  'query metrics($environmentId: String!, $serviceId: String, $startDate: DateTime!, $measurements: [MetricMeasurement!]!) {
    metrics(environmentId: $environmentId, serviceId: $serviceId, startDate: $startDate, measurements: $measurements) {
      measurement
      tags { deploymentId region serviceId }
      values { ts value }
    }
  }' \
  "$VARS"
SCRIPT
```

## Exemplo: Todos os Serviços no Environment

Omita serviceId e use groupBy para obter métricas de todos os serviços:

```bash
bash <<'SCRIPT'
START_DATE=$(date -u -v-1H +"%Y-%m-%dT%H:%M:%SZ" 2>/dev/null || date -u -d "1 hour ago" +"%Y-%m-%dT%H:%M:%SZ")
ENV_ID="your-environment-id"

VARS=$(jq -n \
  --arg env "$ENV_ID" \
  --arg start "$START_DATE" \
  '{environmentId: $env, startDate: $start, measurements: ["CPU_USAGE", "MEMORY_USAGE_GB"], groupBy: ["SERVICE_ID"]}')

${CLAUDE_PLUGIN_ROOT}/skills/lib/railway-api.sh \
  'query metrics($environmentId: String!, $startDate: DateTime!, $measurements: [MetricMeasurement!]!, $groupBy: [MetricTag!]) {
    metrics(environmentId: $environmentId, startDate: $startDate, measurements: $measurements, groupBy: $groupBy) {
      measurement
      tags { serviceId region }
      values { ts value }
    }
  }' \
  "$VARS"
SCRIPT
```

## Parâmetros de Tempo

| Parâmetro | Descrição |
|-----------|-----------|
| startDate | Obrigatório. Formato ISO 8601 (ex: `2024-01-01T00:00:00Z`) |
| endDate | Opcional. Padrão é agora |
| sampleRateSeconds | Intervalo de amostragem (ex: 60 para amostras de 1 minuto) |
| averagingWindowSeconds | Janela de média para suavização |

**Dica:** Para a última hora, calcule startDate como `agora - 1 hora` em formato ISO.

## Interpretação da Saída

```json
{
  "data": {
    "metrics": [
      {
        "measurement": "CPU_USAGE",
        "tags": { "deploymentId": "...", "serviceId": "...", "region": "us-west1" },
        "values": [
          { "ts": "2024-01-01T00:00:00Z", "value": 0.25 },
          { "ts": "2024-01-01T00:01:00Z", "value": 0.30 }
        ]
      }
    ]
  }
}
```

- `ts` - timestamp em formato ISO
- `value` - valor da métrica (cores para CPU, GB para memória/disco/rede)

## Composição

- **Obter IDs**: Use a skill railway-status ou `railway status --json`
- **Verificar saúde do serviço**: Use a skill railway-service para status de deployment
- **Visualizar logs**: Use a skill railway-deployment se as métricas mostrarem problemas
- **Escalar serviço**: Use a skill railway-environment para ajustar recursos

## Tratamento de Erros

### Métricas Vazias/Nulas

Serviços sem deployments ativos retornam arrays de métricas vazios. Ao processar com jq, trate nulls:

```bash
# Iteração segura - pule nulls
jq -r '.data.metrics[]? | select(.values != null and (.values | length) > 0) | ...'

# Verifique se as métricas existem antes de processar
jq -e '.data.metrics | length > 0' response.json && echo "has metrics"
```

### Sem Dados de Métricas

O serviço pode ser novo ou não ter tráfego. Verifique:
- Serviço tem deployment ativo (serviços parados não têm métricas)
- Intervalo de tempo inclui período de deployment

### ID de Serviço/Environment Inválido

Verifique IDs com `railway status --json`.

### Permissão Negada

O usuário precisa de acesso ao projeto para consultar métricas.

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

View all in devops →

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.