Operação

Operação & observabilidade

Checklist de erros comuns, consultas prontas para troubleshooting e consumo de IA, e onde acompanhar custo/saúde do ambiente sem precisar de nenhuma ferramenta extra.

O ambiente registra, em TB_26AI_TECH_LOG, cada chamada feita ao Generative AI e aos embeddings — sucesso ou erro — para que a operação do dia a dia não dependa de abrir um chamado toda vez que algo não funcionar de primeira. Use as consultas desta página para diagnosticar rapidamente qualquer problema, e o checklist abaixo para os casos mais comuns.

Checklist de erros comuns

SintomaCausa provávelComo confirmar/corrigir
ORA-00942 em qualquer objeto TB_26AI_TECH_*Conectado como ADMIN em vez de AMPMINSIGHTS.Rode SELECT USER FROM DUAL; — tem que voltar AMPMINSIGHTS. Reconecte e repita a seção que falhou.
"AI Insight"/chat sempre retorna um texto genérico de indisponibilidadeCredencial OCI_CRED ausente ou quebrada.SELECT credential_name FROM user_credentials WHERE credential_name = 'OCI_CRED'; — se não retornar linha, refaça a Seção 3 conectado como AMPMINSIGHTS. Depois, confira o motivo exato na consulta de "Erros recentes" abaixo.
Erro de rede/timeout ao chamar o Generative AIACL de rede (Seção 1.6) não cobre o host correto.SELECT host, privilege FROM dba_host_aces WHERE principal = 'AMPMINSIGHTS'; — deve listar inference.generativeai.us-chicago-1.oci.oraclecloud.com com RESOLVE e CONNECT.
ORA-20404 ("Object not found", domínio oci.my$cloud_domain)Perfil de SELECT AI usando a região "de casa" do tenancy (OCI_REGION) em vez da região do Generative AI.Use o valor de GENAI_REGION (Seção 2), não OCI_REGION — ver Seção 5.3 do Passo a passo: banco de dados.
ORA-20404 com URL bem formada (região correta no domínio)A tenancy não alcança a região configurada em GENAI_REGION, ou o modelo não está mais disponível para uso on-demand nessa região (a disponibilidade de modelos varia por região e muda com o tempo).Rode oci generative-ai model-collection list-models --compartment-id <seu-compartimento> --region <regiao-candidata> --capability CHAT --all (ou o Console OCI) e confirme que o modelo usado está ACTIVE e sem time-on-demand-retired preenchido nessa região; ajuste GENAI_REGION (e a ACL da Seção 1.6 para o novo host) para uma região que sua tenancy alcance e que ainda sirva o modelo on-demand.
ORA-20404 mesmo com credencial/ACL/região corretosEMBEDDING_COMPARTMENT preenchido com o OCID errado (ex.: do Autonomous Database em vez do compartimento — os dois "parecem" um OCID válido).Confira o prefixo: tem que ser ocid1.compartment...., nunca ocid1.autonomousdatabase..... Se corrigir, recrie a credencial (OCI_CRED) — ela grava o compartimento internamente na criação.
Lupa do "AI Insight" falha mesmo com tudo certo em TB_26AI_TECH_PARAMSCOMPARTMENT_ID/OCI_CREDENTIAL/REGION nas Application Settings do APEX (config separada, ver seção abaixo) desatualizados em relação à tabela.App Builder → Shared Components → Application Settings — compare com TB_26AI_TECH_PARAMS.

O que TB_26AI_TECH_LOG guarda

Toda chamada a Generative AI/embeddings feita pelas funções internas do ampmInsights grava uma linha nesta tabela — sucesso ou erro, sem exceção. Guarda metadados de uso (função de origem, provider, modelo, duração, tamanho do prompt/resposta em caracteres, usuário, e o SQLCODE/SQLERRM quando há erro) — deliberadamente não guarda o prompt ou a resposta completos, só o tamanho, por privacidade e para não inchar a tabela.

Consultas prontas

Erros recentes (últimas 24h)
SELECT log_ts, calling_object, operation, provider, model_name,
       error_code, error_message
FROM   TB_26AI_TECH_LOG
WHERE  status = 'ERROR'
AND    log_ts >= SYSTIMESTAMP - INTERVAL '24' HOUR
ORDER  BY log_ts DESC;
Taxa de erro por dia e por função/modelo
SELECT TRUNC(log_ts) AS dia, calling_object, model_name,
       COUNT(*) AS total,
       SUM(CASE WHEN status = 'ERROR' THEN 1 ELSE 0 END) AS erros,
       ROUND(100 * SUM(CASE WHEN status = 'ERROR' THEN 1 ELSE 0 END) / COUNT(*), 1) AS pct_erro
FROM   TB_26AI_TECH_LOG
GROUP  BY TRUNC(log_ts), calling_object, model_name
ORDER  BY dia DESC, pct_erro DESC;
Chamadas mais lentas
SELECT log_ts, calling_object, operation, model_name, duration_ms, status
FROM   TB_26AI_TECH_LOG
WHERE  duration_ms IS NOT NULL
ORDER  BY duration_ms DESC
FETCH FIRST 20 ROWS ONLY;
Qual registro de negócio está falhando
SELECT l.log_ts, l.source_type, l.source_id, l.error_message,
       v.asset_name, v.definition_name
FROM   TB_26AI_TECH_LOG l
LEFT JOIN TB_26AI_TECH_v2 v ON v.rowid = CHARTOROWID(l.source_id)
WHERE  l.status = 'ERROR'
AND    l.source_id IS NOT NULL
ORDER  BY l.log_ts DESC;
Purga do log (usa AI_LOG_RETENTION_DAYS)
DECLARE
  v_days TB_26AI_TECH_PARAMS.PARAM_VALUE%TYPE;
BEGIN
  SELECT param_value INTO v_days FROM TB_26AI_TECH_PARAMS WHERE param_name = 'AI_LOG_RETENTION_DAYS';
  DELETE FROM TB_26AI_TECH_LOG WHERE log_ts < SYSTIMESTAMP - NUMTODSINTERVAL(v_days, 'DAY');
  COMMIT;
END;
/

Application Settings do APEX — uma segunda fonte de configuração

A funcionalidade "AI Insight" (lupa na lista de vulnerabilidades) não lê EMBEDDING_COMPARTMENT direto de TB_26AI_TECH_PARAMS — o processo da página usa apex_app_setting.get_value('OCI_CREDENTIAL') e apex_app_setting.get_value('COMPARTMENT_ID'), valores configurados dentro do próprio APEX (App Builder → Shared Components → Application Settings), separados da tabela de configuração do banco.

Application Setting (APEX)Deve bater com
OCI_CREDENTIALOCI_CRED (nome da credencial da Seção 3)
COMPARTMENT_IDo mesmo valor de EMBEDDING_COMPARTMENT em TB_26AI_TECH_PARAMS
REGIONo mesmo valor de GENAI_REGION em TB_26AI_TECH_PARAMS

Confira direto no App Builder: abra a aplicação → Shared Components → Application Settings, e compare os três valores acima com a TB_26AI_TECH_PARAMS atual. Sempre que corrigir EMBEDDING_COMPARTMENT ou GENAI_REGION no banco, atualize também aqui — são dois lugares de armazenamento independentes, corrigir um não corrige o outro.

Ferramentas nativas — sem código novo

ADB Performance Hub

Saúde do banco (CPU, I/O, sessões, SQL Monitor) direto no Console OCI, sem instrumentação extra.

OCI Cost Analysis

Custo real do Generative AI, filtrado por serviço/compartimento — complementa o TB_26AI_TECH_LOG (que dá contagem/latência, não valor faturado).

Activity Reports (páginas 10020-10026)

Atividade de usuário/sessão e erros não tratados do APEX, já vêm prontas na aplicação (apex_activity_log).

Job de geração em lote (JOB_26AI_TECH_VULNERABILIDADE)

O botão "Gerar Insights em Lote" cria um job que roda a cada 20 segundos processando os registros pendentes. Ele mesmo verifica, a cada execução, se ainda há registros com insight_report nulo e se auto-remove (DBMS_SCHEDULER.stop_job/drop_job) quando não sobra nada para processar — não é necessário clicar em "parar" manualmente ao final de um lote. Para confirmar, rode SELECT job_name, state FROM dba_scheduler_jobs WHERE job_name = 'JOB_26AI_TECH_VULNERABILIDADE'; — não deve retornar linha depois que o processamento terminar.