OpenMetrics
23 min
observability — métricas de flows a fluid expõe métricas de execução em tempo real para o seu workspace através de um endpoint compatível com prometheus você pode coletar essas métricas com prometheus, datadog agent, grafana agent ou qualquer coletor compatível com openmetrics métricas disponíveis métrica tipo descrição fluid flow executions total counter total de execuções de flow, por flow e status fluid flow execution duration seconds histogram tempo de execução de flow em segundos fluid flow active executions gauge execuções de flow em andamento no momento fluid engine pods healthy gauge pods da engine em estado ready no seu workspace fluid engine pods total gauge total de pods da engine alocados no seu workspace labels fluid flow executions total e fluid flow execution duration seconds label valores descrição organization id slug da organização identificador da sua organização na fluid workspace id id do workspace o workspace ao qual essa métrica pertence flow name nome do flow ou other flow executado veja cardinalidade status success , warning , fail apenas em fluid flow executions total fluid flow active executions , fluid engine pods healthy e fluid engine pods total têm os labels organization id e workspace id quando as métricas são consultadas no prometheus ou grafana, também podem aparecer labels adicionados pelo scrape, como job , instance , environment e organization esses labels vêm da configuração do coletor; as labels emitidas pela fluid são organization id e workspace id exemplo de saída \# help fluid flow executions total total de execuções de flow por org, workspace, flow e status \# type fluid flow executions total counter fluid flow executions total{organization id="acme",workspace id="acme abc123",flow name="enviar nota",status="success"} 1482 fluid flow executions total{organization id="acme",workspace id="acme abc123",flow name="enviar nota",status="fail"} 3 fluid flow executions total{organization id="acme",workspace id="acme abc123",flow name=" other",status="success"} 9201 \# help fluid flow execution duration seconds duração de execução de flow em segundos \# type fluid flow execution duration seconds histogram fluid flow execution duration seconds bucket{organization id="acme",workspace id="acme abc123",flow name="enviar nota",le="1"} 890 fluid flow execution duration seconds bucket{organization id="acme",workspace id="acme abc123",flow name="enviar nota",le="5"} 1460 fluid flow execution duration seconds bucket{organization id="acme",workspace id="acme abc123",flow name="enviar nota",le="+inf"} 1485 fluid flow execution duration seconds sum{organization id="acme",workspace id="acme abc123",flow name="enviar nota"} 2341 7 fluid flow execution duration seconds count{organization id="acme",workspace id="acme abc123",flow name="enviar nota"} 1485 \# help fluid flow active executions execuções de flow em andamento (zera em restart) \# type fluid flow active executions gauge fluid flow active executions{organization id="acme",workspace id="acme abc123"} 7 \# help fluid engine pods healthy pods da engine em estado ready por workspace \# type fluid engine pods healthy gauge fluid engine pods healthy{organization id="acme",workspace id="acme abc123"} 3 \# help fluid engine pods total total de pods da engine por workspace \# type fluid engine pods total gauge fluid engine pods total{organization id="acme",workspace id="acme abc123"} 3 endpoints há dois endpoints disponíveis escolha o que melhor se encaixa na sua configuração de scrape por workspace get https //telemetry api fluidapi io/v1/observability/organizations/{org id}/workspaces/{workspace id}/metrics retorna métricas de um único workspace use quando quiser controle granular por ambiente (ex produção e staging em jobs de scrape separados com alertas independentes) por organização get https //telemetry api fluidapi io/v1/observability/organizations/{org id}/metrics retorna métricas de todos os workspaces da sua organização em um único scrape use quando quiser um job único que cubra todos os ambientes as métricas retornadas incluem o label workspace id em cada série, permitindo filtrar por workspace nas suas queries se você tiver múltiplos workspaces e quiser alertas isolados por workspace, prefira o endpoint por workspace autenticação ambos os endpoints exigem autenticação oauth2 client credentials o coletor obtém um access token no endpoint de identidade da fluid e envia esse token como bearer em cada scrape use as credenciais oauth2 fornecidas pela fluid para sua organização não coloque um bearer token fixo no arquivo de configuração do prometheus ou do datadog agent endpoint de token de produção https //id api fluidapi io/oauth2/token fluid legacy configurando seu coletor prometheus — endpoint por workspace configure um job de scrape por workspace no seu prometheus yml scrape configs \ job name "fluid observability prod" scrape interval 60s scheme https metrics path "/v1/observability/organizations/acme/workspaces/acme prod abc123/metrics" static configs \ targets \ "telemetry api fluidapi io" oauth2 client id "\<client id>" client secret "\<client secret>" token url "https //id api fluidapi io/oauth2/token fluid legacy" prometheus — endpoint por organização configure um único job para cobrir todos os workspaces scrape configs \ job name "fluid observability" scrape interval 60s scheme https metrics path "/v1/observability/organizations/acme/metrics" static configs \ targets \ "telemetry api fluidapi io" oauth2 client id "\<client id>" client secret "\<client secret>" token url "https //id api fluidapi io/oauth2/token fluid legacy" relabel configs \# opcional adiciona um label de ambiente a todas as séries \ target label environment replacement producao queries úteis com o endpoint de organização \# taxa de erro por workspace sum by (workspace id) ( rate(fluid flow executions total{status="fail"}\[5m]) ) / sum by (workspace id) ( rate(fluid flow executions total\[5m]) ) \# execuções por workspace — visão consolidada sum by (workspace id) (rate(fluid flow executions total\[5m])) queries úteis com o endpoint por workspace \# taxa de execuções sem sucesso nos últimos 5 minutos sum by (flow name) ( rate(fluid flow executions total{status= "warning|fail"}\[5m]) ) / sum by (flow name) ( rate(fluid flow executions total\[5m]) ) \# percentual de sucesso por flow 100 sum by (flow name) ( rate(fluid flow executions total{status="success"}\[5m]) ) / sum by (flow name) ( rate(fluid flow executions total\[5m]) ) \# flows com mais execuções na última hora topk(10, sum by (flow name) ( increase(fluid flow executions total\[1h]) ) ) \# tempo médio de execução por flow (últimos 30 min) sum by (flow name) (rate(fluid flow execution duration seconds sum\[30m])) / sum by (flow name) (rate(fluid flow execution duration seconds count\[30m])) \# p95 de duração por flow histogram quantile(0 95, sum by (flow name, le) ( rate(fluid flow execution duration seconds bucket\[30m]) ) ) \# execuções ativas em andamento agora fluid flow active executions \# pods da engine prontos / total sum(fluid engine pods healthy) / sum(fluid engine pods total) datadog agent crie um arquivo de configuração em /etc/datadog agent/conf d/openmetrics d/fluid yaml instances \ openmetrics endpoint "https //telemetry api fluidapi io/v1/observability/organizations/acme/metrics" namespace fluid metrics \ "^fluid " collect histogram buckets true histogram buckets as distributions true auth token reader type oauth url "https //id api fluidapi io/oauth2/token fluid legacy" client id "\<client id>" client secret "\<client secret>" options include client id true writer type header name authorization value "bearer \<token>" min collection interval 60 o writer do auth token é necessário no datadog agent ele define o header onde o agent injeta o token obtido pelo reader o valor \<token> é um placeholder substituído pelo próprio agent, não um token fixo reinicie o agent sudo systemctl restart datadog agent após alguns minutos, as métricas aparecem no datadog sob o namespace fluid monitores sugeridos alerta sobre fluid fluid flow executions total com status diferente de success acima de um limiar alerta sobre fluid fluid flow execution duration seconds 95percentile excedendo o sla esperado dashboard grafana — getting started disponibilizamos um dashboard pré configurado com os painéis mais úteis para começar para importar baixe o arquivo json fluid telemetry dashboard json https //files fluidapi io/grafana/fluid telemetry dashboard json no grafana, acesse dashboards → import faça upload do arquivo json ou cole o conteúdo selecione o datasource prometheus configurado com a fluid clique em import o dashboard inclui taxa de execuções por flow e status taxa de execuções sem sucesso (%) execuções ativas em andamento disponibilidade dos pods da engine cardinalidade a fluid protege o seu sistema de monitoramento contra explosão de métricas se o seu workspace tiver mais de 100 flows distintos, apenas os 100 com maior volume de execuções recebem label individual os demais são agrupados sob o label flow name=" other" isso significa que os 100 flows com mais execuções são sempre visíveis individualmente flows fora do top 100 contribuem para os contadores de other , permitindo acompanhar o volume total e a taxa de falha do workspace como um todo conforme os padrões de tráfego mudam, flows podem entrar e sair do top 100 o bucket other se ajusta automaticamente se você precisar acompanhar um flow específico que aparece em other , entre em contato com o suporte da fluid para discutir opções de cardinalidade para o seu workspace staleness e resets contadores de execução ( fluid flow executions total ) são atualizados em segundos após cada execução são contadores em memória se o serviço de telemetria da fluid for reiniciado, os contadores zeram use rate() e increase() no prometheus — essas funções tratam resets de contador de forma transparente histogramas de duração ( fluid flow execution duration seconds ) seguem o mesmo comportamento zeram em restart use rate() sobre bucket , sum e count para calcular percentis e médias fluid flow active executions é um gauge que representa execuções em andamento no momento em caso de restart do serviço, o gauge retorna a zero se execuções estavam ativas no momento do restart, o valor pode mostrar temporariamente um número negativo enquanto os eventos de término das execuções chegam — esse comportamento é transitório e se autocorrige em poucos segundos conforme o serviço normaliza rate limits e cache intervalo mínimo de scrape 60 segundos scrapes mais frequentes que 60s são limitados no api gateway intervalo recomendado 60–300 segundos, dependendo dos requisitos de alertas respostas podem ser cacheadas por até 10 segundos no api gateway scrapes consecutivos dentro dessa janela podem retornar dados idênticos perguntas frequentes por que os contadores às vezes caem para zero? resets de contador acontecem quando o serviço de telemetria da fluid é reimplantado isso é normal e esperado as funções rate() e increase() do prometheus tratam isso automaticamente ao detectar o reset configure suas regras de alerta usando rate() em vez de valores brutos de contador fluid flow active executions mostrou um valor negativo algo está errado? não isso acontece transitoriamente após um restart do serviço o gauge zera, e os eventos de término de execuções que estavam ativas antes do restart chegam e decrementam o valor o gauge se normaliza em poucos segundos assim que o estado em memória é restabelecido configure seus alertas com max over time ou com um threshold negativo para evitar alarmes falsos durante reimplantações qual endpoint devo usar por workspace ou por organização? use o endpoint por organização se você tem múltiplos workspaces (ex produção e staging) e quer simplificar a configuração com um único job de scrape use o endpoint por workspace se quiser alertas completamente isolados por ambiente ou rate limits independentes por workspace tenho múltiplos workspaces preciso de múltiplos jobs de scrape? não necessariamente o endpoint por organização retorna métricas de todos os workspaces da sua org em um único scrape, já com o label workspace id em cada série você pode filtrar por workspace nas suas queries com {workspace id="acme prod abc123"} meu flow aparece como other como faço para tê lo com label individual? os 100 flows com maior volume de execuções recebem label individual se um flow tem volume baixo em relação aos outros no seu workspace, ele aparecerá em other com o tempo, à medida que o flow executa com mais frequência, ele naturalmente entrará no top 100 se você precisar de visibilidade garantida para um flow específico, entre em contato com o suporte os pods da engine mostram 0 algo está errado? se fluid engine pods total mostra 0, pode significar que o seu workspace não tem flows agendados ou execuções recentes que tenham ativado a alocação da engine verifique o painel da fluid se flows estão sendo executados ativamente mas os pods mostram 0, entre em contato com o suporte o endpoint retorna 403 verifique que o client id e o client secret estão corretos a credencial oauth2 tem permissão de leitura de observability o org id e workspace id na url correspondem aos acessos dessa credencial o token url aponta para o ambiente correto roadmap de métricas métrica descrição previsão fluid step executions total total de execuções por step, flow e status próximas versões fluid step execution duration seconds tempo de execução de step em segundos próximas versões fluid connector requests total chamadas por conector externo (hubspot, salesforce…) aguardando campo connector slug na engine fluid connector request duration seconds latência por conector externo aguardando campo connector slug na engine fluid credits consumed total créditos consumidos pelo workspace v2 última atualização maio de 2026 dúvidas? fale com suporte\@fluidapi io mailto\ suporte\@fluidapi io