Translate

Mostrar mensagens com a etiqueta OpenTelemetry. Mostrar todas as mensagens
Mostrar mensagens com a etiqueta OpenTelemetry. Mostrar todas as mensagens

quinta-feira, 16 de abril de 2026

💥 CICS Não é Legado: Como o CICS TS 6.3 Está Processando Milhões de Transações por Segundo (Enquanto o Mundo Ainda Subestima o Mainframe)

 

Bellacosa Mainframe apresenta o CICS TS versão 6.3

💥 CICS Não é Legado: Como o CICS TS 6.3 Está Processando Milhões de Transações por Segundo (Enquanto o Mundo Ainda Subestima o Mainframe)

🧠 CICS Transaction Server – visão geral atual

O produto que manda no jogo é o
👉 IBM CICS Transaction Server for z/OS

  • Middleware transacional de altíssimo volume
  • Base de praticamente todos os bancos, seguradoras e governos
  • Arquitetura cooperativa de multitarefa (quase um “mini-OS dentro do z/OS”)

🚀 Versão mais recente (estado da arte)

👉 Versão atual: CICS TS 6.3
👉 Data de GA: 05 de setembro de 2025

📌 Importante:

  • A linha 6.x segue modelo continuous delivery
  • Atualizações continuam saindo (inclusive em 2026)

🧬 Evolução recente (6.1 → 6.2 → 6.3)

🟢 CICS TS 6.1 (2022)

  • Base da nova geração
  • Foco:
    • APIs modernas
    • Cloud enablement
    • Melhor governança operacional

🟡 CICS TS 6.2 (2024)

  • Performance tuning pesado
  • Melhorias operacionais reais (não só dev)
  • Consolidação da documentação (6.x unificado)

💡 Destaque Bellacosa:

Aqui o CICS começou a “respirar DevOps de verdade”


🔵 CICS TS 6.3 (2025 – atual)

  • Foco forte em:
    • Observabilidade (OpenTelemetry)
    • Segurança
    • Automação operacional
    • Integração com APIs modernas

Exemplo prático:

  • Flush automático de dados de telemetria (SMF + observabilidade moderna)

🔐 Segurança evoluída

  • HSTS (HTTP Strict Transport Security)
  • Melhor visibilidade de login (tentativas, timestamps)

⚙️ Limites operacionais (o que ninguém te explica direito)

Agora vem o ouro 👇 (estilo Bellacosa raiz)

👥 Limite de usuários

👉 Não existe limite fixo definido pelo CICS

Depende de:

  • Região (QR TCB)
  • Storage (EDSAs / GDSA / RDSA)
  • Tuning de SIT

💡 Na prática:

  • Milhares de usuários simultâneos são comuns
  • Bancos operam com dezenas de milhares

🧵 Limite de tasks (TCLASS / MAXTASKS)

👉 Controlado por:

  • MXT (Max Tasks global da região)
  • TCLASS (limite por tipo de workload)

💥 Valores típicos:

  • MXT: 500 até 2000+ (ou mais em ambientes modernos)
  • Pode escalar dependendo de CPU e tuning

📌 Importante:

  • Cada transação = 1 TASK
  • CICS é cooperativo (não preemptivo)

🔁 Limite de transações por segundo (TPS)

👉 Não existe limite fixo no produto

Depende de:

  • CPU (MSU / MIPS)
  • I/O (VSAM / DB2 / MQ)
  • Locking
  • Design da aplicação

💥 Casos reais:

  • 10.000+ TPS → comum
  • 50.000+ TPS → ambientes financeiros pesados

🧠 Limite de memória (Storage)

Controlado por:

  • DSAs:
    • CDSA
    • EDSA
    • RDSA
  • 31-bit vs 64-bit storage

💡 Tendência moderna:
👉 mover tudo possível para 64-bit storage (above the bar)


🧬 Limite de regiões CICS

👉 Ilimitado na prática (depende do z/OS)

Arquiteturas modernas usam:

  • CICSPlex SM
  • TOR / AOR / FOR separation

🏗️ Arquitetura operacional (visão de campo)

🧩 Componentes chave

  • QR TCB → coração da região
  • Open TCBs → paralelismo real (DB2, MQ, Java)
  • Dispatcher CICS → controla multitarefa
  • Program Control (PC)
  • Task Control (TC)

🔄 Modelo de execução

  1. Terminal / API chama transação
  2. CICS cria TASK
  3. Dispatcher gerencia CPU
  4. TASK usa serviços:
    • VSAM
    • DB2
    • MQ
  5. Commit (syncpoint)

🔥 O que realmente mudou (visão prática)

Antes (CICS clássico)

  • 3270
  • COBOL puro
  • VSAM pesado
  • Transação síncrona

Agora (CICS moderno)

  • REST via z/OS Connect
  • APIs JSON
  • Observabilidade (OpenTelemetry)
  • Integração cloud
  • DevOps pipeline

💥 Em resumo:
👉 CICS virou Application Server corporativo de missão crítica


📊 Pontos fortes atuais

  • Escalabilidade absurda (vertical + horizontal)
  • Resiliência (quase zero downtime)
  • Integração híbrida (legacy + cloud)
  • Segurança nível bancário

⚠️ Gargalos reais (sem romantizar)

  • Aplicação mal escrita = gargalo (não o CICS)
  • Lock em VSAM/DB2
  • TASK segurando CPU (não liberando)
  • Storage mal dimensionado
  • Falta de paralelismo (Open TCB subutilizado)

🧠 Conclusão estilo Bellacosa

CICS hoje não é legado.

👉 É core digital escondido atrás de APIs modernas

E a versão 6.3 consolida isso:

  • Mais observável
  • Mais seguro
  • Mais integrado
  • Mais preparado para cloud






quarta-feira, 19 de junho de 2024

Observabilidade Muito Além do Grafana

 

Bellacosa Mainframe em revisao observabilidade muito alem do grafana

☕ Um Café no Bellacosa Mainframe

Observabilidade Muito Além do Grafana

O Que Todo Programador COBOL Padawan Precisa Saber Sobre Prometheus, Grafana, Loki, ELK, Zabbix, OpenTelemetry e Como os Grandes Bancos Descobrem Problemas Antes que os Clientes Percebam

"Durante décadas, quem trabalhava com Mainframe aprendia uma regra simples: se o sistema caiu, alguém vai ligar em menos de cinco minutos. Na era do Kubernetes, dos microsserviços e da nuvem, essa regra mudou. O objetivo agora é descobrir o problema antes mesmo que o telefone toque."


Introdução

Se você é um Programador COBOL Padawan e passou boa parte da carreira trabalhando com IBM Z, CICS, DB2, IMS, MQ, JCL, JES2, SDSF e RACF, provavelmente já ouviu alguém dizer:

"Agora usamos Grafana."

Ou então:

"Precisamos colocar Prometheus."

Ou ainda:

"Os logs estão no Loki."

E a primeira reação costuma ser:

"Mais um monte de ferramentas..."

Na verdade, não.

O que mudou não foi o problema.

Mudaram apenas as ferramentas utilizadas para resolvê-lo.

Desde a década de 1960, administradores de sistemas possuem exatamente as mesmas preocupações:

  • O servidor está funcionando?

  • Existe gargalo?

  • A CPU está sobrecarregada?

  • A memória acabou?

  • O banco está lento?

  • O programa entrou em loop?

  • Quem provocou o incidente?

  • Como evitar que aconteça novamente?

No Mainframe existiam RMF, SMF, SYSLOG, OMEGAMON, SDSF, Tivoli, NetView e System Automation.

Na computação em nuvem surgiram Prometheus, Grafana, Loki, OpenTelemetry, Tempo, Jaeger, Elastic Stack e dezenas de outras soluções.

O conceito continua exatamente o mesmo.

A diferença é que agora estamos monitorando milhares de microsserviços distribuídos em centenas de servidores que podem nascer e desaparecer em segundos.

Vamos tomar um café e entender essa evolução.


O maior erro de quem começa em DevOps

Muita gente acredita que Grafana é uma ferramenta de monitoramento.

Não é.

Outros imaginam que Prometheus cria dashboards.

Também não.

Há quem pense que Loki substitui um banco de dados.

Novamente, não.

Essas ferramentas fazem parte de uma disciplina muito maior chamada Observabilidade.

E esse é um conceito extremamente importante.


Monitoramento x Observabilidade

Imagine que você trabalha em um banco.

Às 10h15 da manhã começam centenas de reclamações.

Clientes não conseguem fazer PIX.

O monitoramento informa apenas:

API PIX

Status:

DOWN

Ótimo.

Sabemos que existe um problema.

Mas...

Por quê?

Agora entra a observabilidade.

Ela responde algo como:

CPU

↓

95%

↓

Garbage Collector executando

↓

Banco de Dados respondeu lentamente

↓

Fila Kafka acumulou mensagens

↓

Timeout

↓

Clientes começaram a receber erro

Percebe a diferença?

Monitoramento responde:

Existe um problema.

Observabilidade responde:

Por que ele aconteceu.


A analogia perfeita para quem vem do Mainframe

Vamos traduzir tudo isso para o universo IBM Z.

Mundo MainframeMundo Cloud Native
RMFPrometheus
SMFMetrics
SYSLOGLogs
OMEGAMONGrafana
SDSFGrafana + Loki
NetViewAlertmanager
Tivoli MonitoringPrometheus + Grafana
System AutomationAlertmanager + Kubernetes

Ou seja...

Você já conhece praticamente todos os conceitos.

Apenas os nomes mudaram.


Os três pilares da Observabilidade

Existe uma regra que todo profissional de SRE conhece.

Uma infraestrutura moderna precisa de três tipos de informação.

Pilar 1 — Métricas

São números.

Apenas números.

Exemplos:

CPU

67%
Memória

12 GB
Disco

81%
Latência

95 ms
Requests

3500/s

Essas informações ocupam pouco espaço.

São rápidas.

Podem ser armazenadas durante anos.

É exatamente esse tipo de dado que o Prometheus coleta.


Pilar 2 — Logs

Agora imagine um extrato bancário.

Cliente iniciou login

↓

Senha válida

↓

Consultou saldo

↓

Transferência

↓

PIX

↓

Logout

Isso é um log.

Ele conta uma história.

Enquanto métricas dizem:

CPU = 89%

O log diz:

NullPointerException

Arquivo não encontrado

Timeout DB2

Usuário autenticado

Transação cancelada

Os logs ocupam muito mais espaço.

Mas possuem riqueza de detalhes.


Pilar 3 — Traces

Este é o mais moderno dos três pilares.

Imagine um PIX.

Ele passa por vários componentes.

Aplicativo

↓

API Gateway

↓

Autenticação

↓

Pagamento

↓

Banco

↓

Kafka

↓

Resposta

Cada etapa possui tempo.

O Trace mostra exatamente onde ocorreu a lentidão.

É como colocar um GPS dentro da requisição.

Ferramentas:

  • Jaeger

  • Tempo

  • OpenTelemetry


Afinal, o que é o Prometheus?

O Prometheus nasceu na SoundCloud.

Hoje é um projeto da CNCF.

Praticamente todo cluster Kubernetes utiliza Prometheus.

Mas afinal...

O que ele faz?

Resposta curta:

Coleta métricas.

Só isso.

Não cria dashboards.

Não armazena logs.

Não faz visualizações bonitas.

Ele apenas pergunta continuamente aos servidores:

Como você está?

O modelo Pull

Esse detalhe é extremamente importante.

Prometheus trabalha com Pull.

Ou seja...

Ele vai até o servidor.

Prometheus

↓

Servidor Linux

↓

Qual sua CPU?

Servidor responde:

cpu_usage 63.4

Depois de alguns segundos...

Pergunta novamente.

cpu_usage 65.8

Depois novamente.

cpu_usage 67.9

Assim nasce uma série temporal.


Time Series Database

O banco interno do Prometheus é especializado em séries temporais.

Cada informação possui:

Valor

+

Data

+

Hora

Por exemplo:

10:00

CPU 20%
10:05

CPU 32%
10:10

CPU 48%
10:15

CPU 80%

O interessante não é apenas o valor.

É enxergar sua evolução.


Exporters

Prometheus não entende tudo sozinho.

Ele utiliza Exporters.

Imagine-os como tradutores.

Linux?

Node Exporter.

Windows?

Windows Exporter.

MySQL?

MySQL Exporter.

PostgreSQL?

Postgres Exporter.

Redis?

Redis Exporter.

Kafka?

Kafka Exporter.

Nginx?

Nginx Exporter.

Apache?

Apache Exporter.

Até equipamentos de rede podem ser monitorados utilizando SNMP Exporter.

No mundo IBM Z também existem integrações específicas para expor métricas de z/OS, CICS, Db2 e MQ para plataformas modernas de observabilidade.


PromQL — A linguagem do Prometheus

Um dos maiores diferenciais do Prometheus é sua linguagem de consultas.

PromQL.

Imagine perguntar:

"Qual foi a média de CPU dos últimos cinco minutos?"

Ou:

"Quantas requisições HTTP ocorreram por segundo?"

Ou:

"Qual o percentil 95 da latência?"

Tudo isso pode ser respondido utilizando PromQL.

É uma linguagem extremamente poderosa e indispensável para quem trabalha com SRE.


Grafana — Muito além dos gráficos bonitos

Existe uma frase famosa:

Prometheus coleta.

Grafana apresenta.

Essa frase resume bem o papel do Grafana.

Ele não coleta nada.

Ele apenas conecta diversas fontes de dados.

Pode consultar:

  • Prometheus

  • Loki

  • Elasticsearch

  • Oracle

  • SQL Server

  • PostgreSQL

  • MySQL

  • InfluxDB

  • OpenSearch

  • Tempo

  • Jaeger

  • CloudWatch

  • Azure Monitor

  • Google Cloud Monitoring

E transformar tudo isso em painéis extremamente intuitivos.


O painel do NOC

Imagine entrar em um Centro de Operações.

Existe um enorme telão.

Você vê:

  • CPU

  • Memória

  • Disco

  • Rede

  • APIs

  • Kubernetes

  • Bancos

  • Filas MQ

  • Kafka

  • Tempo de resposta

  • Quantidade de usuários

Tudo atualizado em tempo real.

Esse telão normalmente é Grafana.


Dashboards inteligentes

Um bom dashboard não serve apenas para mostrar gráficos.

Ele ajuda a responder perguntas.

Exemplo:

Por que a CPU aumentou?

Clique.

Agora veja somente aquele servidor.

Clique novamente.

Veja apenas aquele Pod.

Clique outra vez.

Agora visualize os logs.

Depois os traces.

Esse processo chama-se Drill Down.

É uma investigação guiada.


Loki — O banco de logs da Grafana Labs

Se Prometheus trabalha com métricas...

Loki trabalha com logs.

Mas existe uma diferença enorme entre Loki e Elasticsearch.


ELK tradicional

No Elastic Stack, praticamente todo o conteúdo do log é indexado.

Isso torna a pesquisa extremamente rápida.

Mas também exige muito armazenamento.

Grandes ambientes podem consumir dezenas de terabytes.


Loki

O Loki segue uma filosofia diferente.

Ele indexa apenas Labels.

Por exemplo:

Namespace

backend
Pod

payment-api
Container

java

O texto completo permanece compactado.

Resultado?

Muito menos espaço.

Muito menos custo.

Por isso Loki tornou-se extremamente popular em Kubernetes.


LogQL

Assim como Prometheus possui PromQL...

Loki possui LogQL.

Você pode perguntar:

Mostre todos os logs do namespace financeiro.

Ou:

Procure apenas mensagens ERROR.

Ou:

Mostre todos os Timeout DB2.

A sintaxe é bastante intuitiva.


Elastic Stack — O gigante da busca textual

Nem sempre Loki é a melhor escolha.

Imagine uma instituição financeira.

Milhões de logs por dia.

Auditoria.

LGPD.

Compliance.

Fraudes.

Pesquisas complexas.

Nesse cenário o Elastic Stack continua sendo excelente.

Ele é composto por:

  • Elasticsearch

  • Logstash

  • Kibana

Em muitas empresas modernas o Logstash foi substituído por Beats ou Elastic Agent.

Também existe o OpenSearch, derivado do Elasticsearch, bastante utilizado como alternativa open source.


Zabbix — O veterano que continua forte

Antes do Kubernetes dominar o mercado, muitas empresas já utilizavam Zabbix.

Ele continua extremamente relevante.

Especialmente para:

  • Switches

  • Roteadores

  • Firewalls

  • Impressoras

  • Servidores físicos

  • Máquinas virtuais

  • UPS

  • Storage

  • Bancos de dados

  • Ambientes híbridos

Enquanto Prometheus nasceu para ambientes dinâmicos e cloud native, Zabbix continua brilhando em infraestruturas tradicionais.


OpenTelemetry — A linguagem universal da observabilidade

Nos últimos anos surgiu um novo protagonista.

OpenTelemetry.

Ele não substitui Prometheus.

Nem Grafana.

Nem Loki.

Ele cria um padrão.

Imagine uma aplicação Java.

Outra em Go.

Outra em Python.

Outra em COBOL acessando uma API via z/OS Connect.

Como todas enviarão métricas, logs e traces?

OpenTelemetry resolve esse problema.

Ele padroniza a instrumentação.

É como um tradutor universal.


Alertmanager — Quando o problema precisa encontrar você

Monitorar é importante.

Mas ninguém fica olhando dashboards vinte e quatro horas por dia.

Quando algo acontece...

O Alertmanager entra em ação.

Ele pode enviar notificações para:

  • Slack

  • Microsoft Teams

  • Telegram

  • Discord

  • PagerDuty

  • Opsgenie

  • E-mail

  • SMS

Muito parecido com o papel desempenhado pelo IBM System Automation e pelo NetView em ambientes Mainframe.


O fluxo completo da observabilidade

Imagine um microsserviço Java executando em Kubernetes.

O fluxo típico será:

Aplicação

↓

Exporta métricas

↓

Prometheus

↓

Grafana

Ao mesmo tempo:

Aplicação

↓

Logs

↓

Fluent Bit

↓

Loki

↓

Grafana

E também:

Aplicação

↓

OpenTelemetry

↓

Collector

↓

Tempo

↓

Grafana

Observe algo interessante.

Tudo converge para o Grafana.

Ele torna-se a porta de entrada para toda a operação.


Um exemplo real em um grande banco

Imagine um Internet Banking durante o pagamento de salários.

Milhões de transações.

Subitamente o tempo de resposta aumenta.

O que acontece?

Primeiro...

Prometheus detecta aumento de CPU.

Depois...

Grafana mostra crescimento da latência.

Logo em seguida...

Alertmanager envia alerta para a equipe.

Os operadores acessam Loki.

Descobrem centenas de mensagens:

Timeout DB2

Os traces mostram que todas as requisições lentas passam pelo mesmo microsserviço.

A equipe reinicia apenas aquele componente.

O problema desaparece.

Tudo isso pode acontecer em poucos minutos.

Antes mesmo de milhares de clientes perceberem.


E no Mainframe?

Muita gente imagina que observabilidade pertence apenas à nuvem.

Não é verdade.

IBM Z possui uma enorme quantidade de dados operacionais.

SMF Records.

RMF.

OMEGAMON.

CICS Performance Analyzer.

Db2 Statistics.

IMS Monitor.

MQ Statistics.

Essas informações podem ser integradas com Prometheus, Grafana e OpenTelemetry.

Hoje é perfeitamente possível construir dashboards que apresentam lado a lado:

  • CPU do z/OS

  • Consumo do CICS

  • Threads do Java

  • Pods Kubernetes

  • APIs REST

  • Banco PostgreSQL

  • Db2 for z/OS

Tudo na mesma tela.

Essa convergência é uma das maiores tendências da observabilidade corporativa.


O caminho recomendado para um COBOL Padawan

Se você está começando nessa área, minha recomendação é seguir uma trilha progressiva:

  1. Entenda o conceito de observabilidade.

  2. Aprenda a diferença entre métricas, logs e traces.

  3. Estude Prometheus e PromQL.

  4. Domine Grafana e criação de dashboards.

  5. Aprenda Loki e LogQL.

  6. Conheça Alertmanager.

  7. Estude OpenTelemetry.

  8. Explore Tempo e Jaeger.

  9. Conheça Elastic Stack e OpenSearch.

  10. Aprenda como tudo isso se integra ao Kubernetes.

Essa sequência faz muito mais sentido do que tentar aprender todas as ferramentas ao mesmo tempo.


Muito além das ferramentas

Talvez a maior lição deste café seja perceber que observabilidade não é um produto, mas uma forma de pensar.

O profissional moderno não espera o usuário reclamar. Ele cria sistemas capazes de revelar tendências, antecipar falhas e explicar, com precisão, por que uma aplicação está degradando.

Quem trabalhou anos com IBM Z já conhece essa mentalidade. Sempre houve preocupação com disponibilidade, desempenho, capacidade e diagnóstico. O que mudou foi a escala. Em vez de monitorar um único computador central altamente estável, hoje monitoramos milhares de contêineres efêmeros, APIs, filas de mensagens e bancos distribuídos que surgem e desaparecem em segundos.

Ferramentas como Prometheus, Grafana, Loki, OpenTelemetry, Tempo, Jaeger, Elastic Stack e Zabbix representam a evolução natural desse processo. Elas não substituem os conceitos que fizeram do Mainframe uma referência mundial em confiabilidade; elas os expandem para um ambiente distribuído, dinâmico e orientado a microsserviços.

Para o Programador COBOL Padawan, aprender observabilidade é muito mais do que decorar comandos ou instalar dashboards. É compreender como uma transação percorre toda a arquitetura, como interpretar sinais de degradação antes que se transformem em incidentes e como utilizar dados para tomar decisões técnicas com rapidez e segurança.

No fim das contas, a missão continua a mesma de cinquenta anos atrás: manter sistemas críticos funcionando com excelência. A diferença é que agora contamos com uma caixa de ferramentas muito mais rica, integrada e inteligente. Quem domina observabilidade deixa de apenas reagir a problemas e passa a antecipá-los, tornando-se um profissional indispensável em qualquer equipe de Engenharia de Software, DevOps, SRE ou Modernização de Mainframe.

Porque, seja em um IBM Z processando milhões de transações CICS por segundo ou em um cluster Kubernetes espalhado por dezenas de nós, a pergunta continua sendo a mesma:

"O sistema está saudável?"

E a observabilidade moderna finalmente nos permite responder não apenas "sim" ou "não", mas também "por quê", "desde quando", "qual componente foi afetado" e, o mais importante, "como evitar que isso aconteça novamente".

Esse é o verdadeiro poder da observabilidade. Esse é o próximo passo na jornada de todo Programador COBOL Padawan rumo à engenharia de software moderna.

segunda-feira, 29 de maio de 2023

☕🔥 PROMETHEUS, MIMIR E O “SMF DO MUNDO CLOUD” — O UNIVERSO DA OBSERVABILIDADE EXPLICADO PARA UM SYSPROG JÚNIOR 🔥☕

 

Bellacosa Mainframe o mundo da observabilidade mainframe

☕🔥 PROMETHEUS, MIMIR E O “SMF DO MUNDO CLOUD” — O UNIVERSO DA OBSERVABILIDADE EXPLICADO PARA UM SYSPROG JÚNIOR 🔥☕

Se o Grafana é o “painel do operador moderno”…

Então:

  • Prometheus é o coletor de métricas
  • Mimir é o mega repositório escalável
  • Loki é o “SYSLOG gigante”
  • Tempo é o rastreador de transações
  • OpenTelemetry virou o “SMF universal”

E tudo isso junto forma o que o mercado chama hoje de:

☕ OBSERVABILIDADE

Mas um sysprog veterano olha isso e pensa:

“Isso parece RMF + SMF + OMEGAMON + SYSLOG + CICS MONITORING misturados…”

E honestamente?

Está certíssimo. ☕💾


☕ O QUE É OBSERVABILIDADE?

Observabilidade é a capacidade de:

  • enxergar o sistema
  • entender comportamento
  • prever falhas
  • diagnosticar problemas rapidamente

Ela normalmente trabalha em 3 pilares:

PilarEquivalente Mainframe
MétricasRMF / SMF
LogsSYSLOG / JESMSGLG
TracesCICS trace / Db2 accounting

☕ O QUE É PROMETHEUS?

O Prometheus é:

  • banco de métricas
  • coletor temporal
  • motor de queries
  • sistema de alertas

Criado em:

  • 2012
  • pela SoundCloud
  • open source
  • depois adotado pela CNCF

Site oficial:


☕ O PROBLEMA QUE ELE RESOLVEU

Antes do Prometheus:

  • monitoramento era caro
  • proprietário
  • complicado
  • cheio de agentes pesados

O Prometheus trouxe:

  • simplicidade
  • coleta HTTP
  • métricas em texto
  • integração cloud-native

Foi um divisor de águas.


☕ COMO O PROMETHEUS FUNCIONA?

☕ Modelo “Pull”

O Prometheus vai até o servidor e pergunta:

“Me mostre suas métricas.”

Isso é chamado:

  • scrape

☕ Exemplo de endpoint

Servidor exportando:

http://server:9100/metrics

Saída:

node_cpu_seconds_total 12345
node_memory_MemFree_bytes 987654321

Parece simples…

E é exatamente essa simplicidade que tornou o Prometheus gigante.


☕ EXPORTERS — O “COLETOR SMF” DO MUNDO MODERNO

Prometheus usa exporters.

Eles convertem dados do sistema para métricas.


☕ EXPORTERS MAIS FAMOSOS

ExporterFunção
node_exporterLinux
windows_exporterWindows
blackbox_exporterRede
mysqld_exporterMySQL
postgres_exporterPostgreSQL
jmx_exporterJava
snmp_exporterEquipamentos

☕ ANALOGIA MAINFRAME

MainframePrometheus
SMF Type RecordsMetrics
RMF Monitornode_exporter
OMEGAMONGrafana + Prometheus
Performance MonitorTime Series DB

☕ PROMQL — O “JCL DAS MÉTRICAS”

O Prometheus possui uma linguagem chamada:

☕ PromQL

Isso é o coração do sistema.


☕ Exemplo simples

CPU:

rate(node_cpu_seconds_total[5m])

☕ Média de memória

avg(node_memory_MemAvailable_bytes)

☕ Detectar servidor offline

up == 0

☕ O QUE TORNA O PROMETHEUS ESPECIAL?

☕ 1 — Time Series Database

Ele guarda:

  • métricas no tempo
  • compressão eficiente
  • consultas rápidas

Perfeito para:

  • tendências
  • capacity planning
  • troubleshooting

☕ 2 — Labels

Toda métrica pode ter rótulos:

http_requests_total{job="api",status="500"}

Isso lembra:

  • classificação SMF
  • accounting records
  • classes de workload

☕ 3 — Alertas

Exemplo:

CPU > 90%

Aciona:

  • email
  • Slack
  • Teams
  • PagerDuty

Equivalente moderno de:

“OPERADOR! O SISTEMA ESTÁ PEGANDO FOGO!” ☕💥


☕ LIMITAÇÕES DO PROMETHEUS

Aqui começa o lado “sysprog raiz”.

Prometheus é excelente…

Mas:

  • retenção longa é complicada
  • clustering nativo é limitado
  • escala massiva dói
  • multi-tenant é complexo

E foi exatamente daí que nasceu:

☕ MIMIR


☕ O QUE É MIMIR?

O Grafana Mimir é:

  • backend distribuído
  • armazenamento massivo de métricas
  • compatível com Prometheus

Site:


☕ A IDEIA DO MIMIR

Imagine:

Prometheus sozinho:

  • ótimo para ambientes pequenos/médios

Mas empresas gigantes precisam:

  • bilhões de métricas
  • retenção longa
  • HA
  • multi datacenter
  • multi tenant

Mimir resolve isso.


☕ ANALOGIA MAINFRAME

Mundo ModernoMundo Mainframe
PrometheusRMF local
MimirSMF central corporativo
Object StorageTape library
Long retentionArquivamento histórico

☕ COMO O MIMIR FUNCIONA?

Ele separa componentes:

ComponenteFunção
Distributorrecebe métricas
Ingestergrava dados
Querierfaz consultas
Compactorcompacta blocos
Store Gatewayacessa storage

Parece familiar?

Sim…

É praticamente arquitetura de subsistema enterprise:

  • filas
  • cache
  • storage
  • distribuído
  • paralelismo

Muito parecido com mentalidade mainframe.


☕ STORAGE

Mimir normalmente usa:

  • S3
  • MinIO
  • GCS
  • Azure Blob

Isso permite:

  • retenção gigantesca
  • baixo custo
  • alta escalabilidade

☕ LOKI — O “SYSLOG GIGANTE”

☕ O QUE É?

O Loki é:

  • sistema de logs
  • feito pela Grafana Labs

Site:


☕ DIFERENÇA IMPORTANTE

Elasticsearch indexa tudo.

Loki indexa:

  • apenas labels

Resultado:

  • menos custo
  • menos storage
  • mais eficiência

☕ EXEMPLO

{job="nginx"} |= "ERROR"

☕ ANALOGIA MAINFRAME

LokiMainframe
Logs distribuídosSYSLOG
LabelsClasses JES
QueriesSDSF filtros

☕ TEMPO — O “CICS TRACE MODERNO”

Tempo trabalha com:

  • distributed tracing

Site:


☕ O QUE É TRACE?

Imagine:

  • usuário clica no app
  • passa API
  • banco
  • microserviço
  • MQ
  • cache

Tempo rastreia:

  • toda jornada

☕ ANALOGIA MAINFRAME

Quase igual:

  • CICS trace
  • Db2 accounting trace
  • MQ activity trace

☕ OPEN TELEMETRY — O “SMF UNIVERSAL”

☕ O QUE É?

Framework padronizado de:

  • métricas
  • logs
  • traces

Site:


☕ POR QUE ISSO MUDOU O MERCADO?

Antes:

  • cada ferramenta tinha padrão próprio

Agora:

  • tudo fala OpenTelemetry

Virou:

“o TCP/IP da observabilidade”


☕ DATA SOURCES MAIS IMPORTANTES NO GRAFANA

Data SourceUso
PrometheusMétricas
LokiLogs
TempoTraces
ElasticsearchLogs/search
InfluxDBIoT/time series
PostgreSQLDados SQL
MySQLAnalytics
CloudWatchAWS
Azure MonitorAzure
SplunkEnterprise logs
OpenSearchObservabilidade

☕ O QUE UM SYSPROG JÚNIOR PRECISA APRENDER?

☕ PRIORIDADE 1

Aprender:

  • Grafana
  • Prometheus
  • PromQL

Isso já abre MUITAS portas.


☕ PRIORIDADE 2

Depois:

  • Loki
  • Alertmanager
  • OpenTelemetry

☕ PRIORIDADE 3

Avançado:

  • Mimir
  • Tempo
  • Thanos
  • Kubernetes observability

☕ THA NOS — O “PRIMO DO MIMIR”

Outro projeto famoso:

Também resolve:

  • escala
  • retenção longa
  • HA

Muito usado em Kubernetes.


☕ CURIOSIDADES INSANAS

☕ Netflix, Uber, bancos e bolsas usam isso

Hoje observabilidade é:

  • missão crítica
  • core business

☕ Um dashboard ruim pode derrubar operação

Porque:

  • operador não vê problema
  • alerta errado gera caos
  • excesso de métricas vira ruído

Exatamente como:

  • console floodado no JES2 ☕💥

☕ MÉTRICA DEMAIS VIRA O NOVO “SPAGHETTI”

Empresas geram:

  • bilhões de métricas por dia

Sem governança:

  • storage explode
  • custo explode
  • queries ficam lentas

☕ O FUTURO

A nova onda:

  • AIOps
  • IA analisando métricas
  • detecção automática
  • previsão de falhas
  • correlação inteligente

Mas o princípio continua o mesmo desde os tempos do MVS:

“Monitorar, entender e agir antes do desastre.” ☕💾🔥

quarta-feira, 24 de maio de 2023

☕Os Holocrons Esquecidos do Tratamento de Erros no IBM Z - EXCEPTION/ERROR Procedures em COBOL:

 

Bellacosa Mainframe e o tratamento de erro em cobol

☕ EXCEPTION/ERROR Procedures em COBOL: Os Holocrons Esquecidos do Tratamento de Erros no IBM Z

Quando o Padawan Descobre que Tratar Erros é Muito Mais Importante do que Apenas Verificar FILE STATUS

Por muitos anos, grande parte dos desenvolvedores COBOL aprendeu que tratar erros significava simplesmente verificar um FILE STATUS, utilizar um AT END, um INVALID KEY ou, em situações mais modernas, um ON EXCEPTION.

E, para muitos sistemas, isso realmente é suficiente.

Mas o IBM Z esconde mecanismos muito mais sofisticados.

Pouco conhecidos.

Pouco documentados.

E frequentemente esquecidos pelas novas gerações de desenvolvedores.

O Enterprise COBOL possui recursos capazes de interceptar falhas automaticamente, centralizar tratamentos, construir frameworks corporativos de recuperação, conversar com o Language Environment, produzir observabilidade moderna e até integrar eventos de erro com plataformas como MQ, OpenTelemetry, Splunk, Elastic e Grafana.

Foi justamente para explorar esse lado quase arqueológico do COBOL que nasceu a série:

📚 EXCEPTION/ERROR Procedures em COBOL

Os Holocrons Esquecidos do Tratamento de Erros no IBM Z

Uma jornada em quatro capítulos, destinada aos jovens Padawans, arquitetos IBM Z, desenvolvedores seniores e curiosos que desejam compreender como os grandes ambientes corporativos realmente lidam com falhas.


📖 Capítulo 1

O Despertar das DECLARATIVES

Quando o Padawan Descobre que COBOL Possui Seu Próprio Mecanismo Jedi de Tratamento de Erros

Neste primeiro holocron, exploramos um dos recursos mais antigos e menos utilizados do COBOL.

Você aprenderá:

  • O que são DECLARATIVES

  • USE AFTER ERROR PROCEDURE

  • História desde ANSI-74 e ANSI-85

  • Como o runtime COBOL transfere o controle para rotinas especiais

  • Comparação entre FILE STATUS e DECLARATIVES

  • Fluxo interno de execução

  • Estruturas de memória

  • Primeiro programa passo a passo

  • Dicas, cuidados e boas práticas Bellacosa

🔗 https://eljefemidnightlunch.blogspot.com/2023/01/exceptionerror-procedures-em-cobol-os.html


📖 Capítulo 2

O Padawan Aprende a Domar os Abends do Dataset

VSAM, FILE STATUS 35/39/92/93, Retry, Logging e Frameworks Corporativos de Recuperação

Todo desenvolvedor IBM Z já encontrou um misterioso FILE STATUS 35 às duas da manhã.

Neste capítulo estudamos:

  • FILE STATUS detalhado

  • Erros 35, 39, 90, 92 e 93

  • VSAM KSDS, ESDS e RRDS

  • Retry inteligente

  • Logging corporativo

  • Estratégias de recuperação

  • Auditoria

  • Framework Bellacosa de tratamento de falhas

  • Observabilidade para ambientes batch

🔗 https://eljefemidnightlunch.blogspot.com/2023/02/os-holocrons-esquecidos-do-tratamento.html


📖 Capítulo 3

O Lado Sombrio das Exceções

LE, CICS HANDLE CONDITION, ON EXCEPTION, CEEHDLR, Dumps, Fault Analyzer, IPCS e os Monstros do S0C4

Chegamos ao território dos Sysprogs Jedi.

Aqui exploramos:

  • Language Environment (LE)

  • Condition Handling

  • CEEHDLR

  • CEESGL

  • HANDLE CONDITION

  • HANDLE ABEND

  • SOC4

  • SOC7

  • S0CB

  • CEEDUMP

  • Fault Analyzer

  • IPCS

  • Como o runtime trata exceções

  • Estruturas de memória

  • Segurança

  • Performance

Se você sempre quis entender o que acontece quando um programa decide produzir um dump de centenas de páginas, este é o capítulo ideal.

🔗 https://eljefemidnightlunch.blogspot.com/2023/03/os-holocrons-esquecidos-do-tratamento.html


📖 Capítulo 4

O Mestre Bellacosa

Frameworks Corporativos de Tratamento de Erros, MQ Dead Letter Queue, APIs JSON, OpenTelemetry, Splunk e a Arte Jedi de Transformar Falhas em Conhecimento

O último holocron leva o tratamento de erros para um novo patamar.

Abordamos:

  • Logger corporativo

  • Correlation ID

  • MQ Dead Letter Queue

  • APIs JSON

  • OpenTelemetry

  • Splunk

  • Elastic/OpenSearch

  • Grafana

  • SRE

  • Observabilidade

  • Compliance

  • LGPD

  • IA aplicada à análise de falhas

  • Framework Bellacosa para Engenharia de Confiabilidade

O objetivo deixa de ser apenas tratar erros.

Passa a ser transformar erros em métricas, conhecimento e melhoria contínua.

🔗 https://eljefemidnightlunch.blogspot.com/2023/04/os-holocrons-esquecidos-do-tratamento.html


☕ O Conselho Final do Mestre Bellacosa

O jovem Padawan aprende rapidamente a testar:

IF WS-FS NOT = '00'

O Cavaleiro domina DECLARATIVES, HANDLE CONDITION e Fault Analyzer.

Mas o Mestre Bellacosa compreende algo ainda mais importante.

Erros nunca desaparecerão.

Datasets continuarão desaparecendo.

Locks continuarão acontecendo.

JSON continuará chegando corrompido.

Ponteiros continuarão apontando para lugares proibidos.

E algum programa inevitavelmente produzirá um SOC4 em plena sexta-feira às 23h58.

O diferencial não está em escrever sistemas que nunca falham.

Está em construir sistemas capazes de observar, compreender, registrar, correlacionar, aprender e evoluir a partir das falhas.

Porque, no fim das contas, talvez a maior lição destes Holocrons seja bastante simples:

Um bom programa COBOL processa milhões de registros.

Um grande programa COBOL continua elegante, auditável e resiliente mesmo quando a galáxia inteira dos datasets decide entrar em caos.

Boa leitura, jovem Padawan. Que o FILE STATUS seja sempre 00, e que seus CEEDUMPs sejam curtos, raros e perfeitamente documentados. ☕🚀💙🖥️

Atenção aos errros em Cobol


☕ Não se esqueça Padawan COBOL

Um Padawan COBOL não erra menos porque memorizou toda a sintaxe da linguagem. Ele erra menos porque desenvolveu disciplina técnica. A primeira regra é simples: nunca confie apenas na memória. Consulte manuais, padrões internos e documentação IBM sempre que houver dúvida.

Escreva programas pequenos, modulares e legíveis. Utilize copybooks padronizados, nomenclatura consistente e comentários que expliquem decisões de negócio, não o óbvio. Sempre valide retornos de chamadas, FILE STATUS, SQLCODE, RESP/RESP2, RCs e condições excepcionais. Trate erros como parte natural do projeto, não como um detalhe para o fim do desenvolvimento.

Pratique testes unitários utilizando zUnit, automatize builds com DBB (Dependency Based Build), integre pipelines Git, Jenkins, GitHub Actions ou Azure DevOps, e utilize análise estática de código sempre que possível. Aproveite recursos modernos do Enterprise COBOL, como JSON PARSE, JSON GENERATE, LOCAL-STORAGE, DECLARATIVES, compilação com opções de diagnóstico aprimoradas e ferramentas como Fault Analyzer, Debug Tool e Application Delivery Foundation for z/OS.

Revisão de pares, programação a quatro mãos ajudam sempre a ter um codigo melhor e evitar erros de simpatia, nao tente inventar a roda, use o que existe e é homologado na sua instalação, consulte o enxoval para saber as regras e diretrizes do seu projeto.

Aprenda a ler dumps, estudar SMF, compreender o Language Environment e observar métricas de desempenho. Revise código de colegas e aceite revisões no seu próprio código. A humildade técnica é uma das maiores virtudes de um Mestre.

O jovem Padawan escreve programas que funcionam. O Mestre Bellacosa escreve programas que continuam funcionando quando a galáxia inteira resolve apresentar FILE STATUS diferente de 00. ☕🚀💙🖥️


sexta-feira, 7 de abril de 2023

Os Holocrons Esquecidos do Tratamento de Erros no IBM Z – O Mestre Bellacosa - Parte IV

 

Bellacosa Mainframe e o tratamento de erro em cobol parte iv



EXCEPTION/ERROR Procedures em COBOL

Os Holocrons Esquecidos do Tratamento de Erros no IBM Z

Parte 4 – O Mestre Bellacosa

Frameworks Corporativos de Tratamento de Erros, MQ Dead Letter Queue, APIs JSON, OpenTelemetry, Splunk e a Arte Jedi de Transformar Falhas em Conhecimento

Por Bellacosa Mainframe


"O jovem Padawan trata erros. O Cavaleiro registra erros. O Mestre Bellacosa transforma erros em observabilidade, métricas e inteligência operacional."

Mestre Bellacosa Sysprog Jedi


Introdução

Na Parte 1 descobrimos.

DECLARATIVES.

Na Parte 2.

VSAM.

Retry.

FILE STATUS.

Logging.

Na Parte 3.

LE.

CEEHDLR.

SOC4.

IPCS.

Fault Analyzer.

Agora chegamos ao estágio final.

O ponto em que tratamento de erros deixa de ser apenas uma técnica de programação.

E se torna.

Arquitetura.

Governança.

Observabilidade.

Engenharia de Confiabilidade.


O antigo paradigma

Antigamente.

Erro.

DISPLAY.

SYSOUT.

Operador.

Telefone.

Programador.

Café.

Madrugada.


Funcionava.

Mas não escala.


O paradigma moderno

Erro.

Captura

Enriquecimento

Fila

Observabilidade

Análise

Automação

Correção

Conhecimento


O Framework Bellacosa

Arquitetura proposta.

Programa COBOL

↓

DECLARATIVE

↓

CEEHDLR

↓

LOGGER

↓

JSON

↓

MQ

↓

Dead Letter Queue

↓

Splunk

↓

Elastic

↓

OpenTelemetry

↓

Dashboard

↓

Equipe SRE

O Logger Corporativo

A primeira peça.

É o Logger.


Não basta.

DISPLAY.


Precisamos.

Contexto.


Exemplo.

Timestamp

Jobname

Stepname

Programa

Dataset

FILE STATUS

Return Code

Userid

Hostname

Transaction ID

Correlation ID

Exemplo.

{
"program":"PAGT0001",

"status":"39",

"dataset":"CLIENTE.MST",

"timestamp":"2026-06-26T03:14:22"

}

Muito mais útil.


MQ como barramento de erros

Muito elegante.


Ao invés.

Escrever SYSOUT.


Enviar.

Evento.


MQPUT.


Arquitetura.

Erro

↓

COBOL

↓

MQPUT

↓

ERROR.QUEUE

↓

Monitoramento

Muito usado.

Em bancos.


Dead Letter Queue

Pouco conhecida.

Mas poderosa.


DLQ.


Fila.

De mensagens.

Problemáticas.


Exemplo.

SYSTEM.DEAD.LETTER.QUEUE

Erro.

Não tratado.

DLQ.


Excelente.

Auditoria.


JSON Error Payload

Muito moderno.


Exemplo.

{

"program":"CLI0001",

"error":"FILE_STATUS_35",

"severity":"HIGH",

"retryable":true

}

Muito elegante.


APIs

COBOL.

Também produz.

Erros REST.


Exemplo.

HTTP 404.

{
"error":"Cliente não encontrado"
}

HTTP 500.

{

"error":"Erro interno"

}

Muito utilizado.


OpenTelemetry

Talvez a tecnologia.

Mais interessante.

Dos últimos anos.


Objetivo.

Instrumentação.


Métricas.


Traces.


Logs.


Arquitetura.

COBOL

↓

Event

↓

Collector

↓

Jaeger

↓

Grafana

Correlation ID

Fundamental.


Exemplo.

ABC123XYZ

Permite.

Rastrear.

Transação.

Completa.


PIX.

MQ.

API.

COBOL.

DB2.

Resposta.


Tudo rastreável.


Splunk

Muito utilizado.


Exemplo.

status=39

Retorna.

Milhares.

Eventos.


Excelente.

Investigação.


Elastic

Alternativa.

Popular.


Kibana.

Muito amigável.


Grafana

Excelente.

Visualização.


Painéis.


Erro por hora.

Erro por programa.

Erro por região.

Erro por dataset.


Muito útil.


OpenSearch

Também.

Muito adotado.


Observabilidade

Conceito moderno.


Três pilares.


Logs.


Metrics.


Traces.


Visualmente.

Logs

+

Metrics

+

Traces


=

Observability

SRE

Site Reliability Engineering.


Conceito Google.


Também aplicável.

Ao IBM Z.


Objetivos.


Disponibilidade.


Confiabilidade.


Tempo resposta.


SLA.


SLO.


Error Budget.


Inteligência Artificial

Muito interessante.


IA.

Pode detectar.


Anomalias.


SOC4.


Aumento.

Status 39.


Picos.

Timeout.


Antes.

Do usuário.

Perceber.


Segurança

Muito importante.


LGPD.


PCI DSS.


SOX.


ISO 27001.


Não exponha.


CPF.

Senha.

Cartão.

Token.

Dump.


Muito comum.

Esquecer.


Sanitização

Exemplo.

Antes.

CPF 12345678900

Depois.

CPF ********900

Muito melhor.


Framework Bellacosa Avançado

Arquitetura.

Programa

↓

Declarative

↓

CEEHDLR

↓

Logger

↓

JSON Event

↓

MQ

↓

DLQ

↓

Splunk

↓

OpenTelemetry

↓

Grafana

↓

Equipe SRE

↓

Knowledge Base

Curiosidade

Grandes bancos.

Fazem isso.

Há anos.


Usuário.

Nunca percebe.


Aplicativo.

Continua.

Funcionando.


Erro.

Foi.

Capturado.

Roteado.

Analisado.

Monitorado.


Automaticamente.


Bellacosa Best Practices

Sempre

Tenha Logger.


Sempre

Correlation ID.


Sempre

Retry.

Controlado.


Sempre

MQ.

Para erros críticos.


Sempre

Dashboards.


Sempre

Fault Analyzer.


Sempre

OpenTelemetry.

Quando possível.


Nunca

DISPLAY.

Como única estratégia.


Nunca

Ignorar.

SOC4.

SOC7.


Nunca

Expor.

Dados sensíveis.


O Conselho Final do Mestre Bellacosa

No início da jornada, o Padawan acreditava que tratamento de erros era apenas escrever:

IF WS-FS NOT = '00'

Depois descobriu DECLARATIVES.

Aprendeu FILE STATUS.

Conheceu VSAM.

Conversou com o Language Environment.

Leu CEEDUMPs.

Estudou Fault Analyzer.

Decifrou IPCS.

E finalmente compreendeu algo importante.

Falhas são inevitáveis.

Sempre existirão.

Discos falham.

Datasets desaparecem.

Locks acontecem.

Ponteiros ficam inválidos.

JSON chega corrompido.

APIs ficam indisponíveis.

Mensagens MQ se perdem.

E sistemas distribuídos inevitavelmente apresentam comportamento inesperado.

O verdadeiro diferencial não é construir software que nunca falha.

É construir software capaz de observar a falha.

Compreendê-la.

Registrá-la.

Correlacioná-la.

Aprender com ela.

E continuar servindo o negócio com elegância.

Porque talvez esta seja a maior lição dos Holocrons Esquecidos do IBM Z.

O jovem Padawan tenta evitar erros.

O Cavaleiro aprende a tratá-los.

O Mestre Bellacosa transforma erros em conhecimento operacional.

E o Conselho Jedi do IBM Z chama isso simplesmente de Engenharia de Confiabilidade.


Fim do Holocron Bellacosa Mainframe

EXCEPTION/ERROR Procedures em COBOL – Parte 1 a Parte 4 concluídas

"Que o FILE STATUS seja sempre 00. E que seus CEEDUMPs sejam curtos, raros e perfeitamente documentados." ☕🚀💙🖥️