A API Notebooks do New Relic permite criar, ler, atualizar e excluir cadernos programaticamente, incluindo o conteúdo completo do bloco (consultas NRQL, texto). Os cadernos são armazenados como blobs versionados, o que significa que cada salvamento produz uma nova revisão imutável que você pode recuperar mais tarde.
Use esta API para:
- Automatize a criação de notebooks a partir de modelos de incidentes, runbooks ou pipeline de CI/CD
- Sincronizar o conteúdo do notebook a partir do controle de versão ou de ferramentas de autoria externas
- Crie integrações que preencham notebooks de forma programática durante as investigações
Importante
Notebooks usar múltiplas APIs
A superfície da API Notebooks é dividida entre dois sistemas:
Blob Storage API lida com o conteúdo do notebook (blocos, histórico de versões)
NerdGraph lida com operações no nível da entidade (listar, renomear, tags, metadados da organização)
Essa separação é intencional. O Blob Storage API é otimizado para transferência de conteúdo de arquivo e controle de versão; o NerdGraph é otimizado para consultas e mutações de entidade estruturadas.
Pré-requisitos
- Uma contaNew Relic com uma chave de API de usuário
- Seu ID da organização do New Relic
- Devidas permissões para gerenciar notebooks
Autenticação
Todas as requisições de API Notebooks exigem autenticação usando uma chave de API de usuário New Relic.
Gere uma chave de API:
- Acesse one.newrelic.com
- Clique em seu nome no canto superior direito
- Selecione API Keys
- Crie uma chave User (não uma chave de Browser ou chave de licença)
Incluir nos cabeçalhos da requisição:
$Api-Key: NRAK-YOUR-USER-API-KEYDica
O Blob Storage API também suporta contexto de login, portanto, ao chamar a API de uma interface autenticada como um usuário New Relic, o cabeçalho Api-Key não é necessário.
Endpoint base
https://blob-api.service.newrelic.com/v1/ePara contas da região da UE, use:
https://blob-api.service.eu.newrelic.com/v1/eOperações de Conteúdo de Caderno
Operações de entidade (NerdGraph)
Operações no nível da entidade, como listagem, renomeação e tag, usam NerdGraph em vez do Blob Storage API.
Listar todos os notebooks
query listAllNotebooks { actor { entityManagement { entitySearch(query: "type='NOTEBOOK'") { entities { id name } } } }}Dica
A criação da entidade é totalmente transacional, portanto, um notebook fica imediatamente disponível por meio da API. No entanto, se você listar notebooks por meio da consulta actor.entitySearch legada, pode haver um pequeno atraso de propagação entre a criação e o notebook aparecer nos resultados da lista.
Renomear um notebook
mutation changeNotebookName { entityManagementUpdateNotebook( id: "<entity guid>" notebookEntity: { name: "<new name>" } ) { entity { name } }}Atualizar tags do caderno
Importante
As atualizações de tag são uma operação de substituição. Você deve incluir o conjunto completo de tag, mesmo as que não estão mudando — qualquer tag omitida da mutação será removida.
mutation updateNotebookTags { entityManagementUpdateNotebook( id: "<entity guid>" notebookEntity: { tags: [ { key: "<key>", values: "<value>" } { key: "<key>", values: "<value>" } ] } ) { entity { name tags { key values } } }}Recupere o ID da sua organização
Você precisará do seu ID da organização para todas as chamadas de Blob Storage API:
query getOrgId { actor { organization { id } }}Práticas medidas
- Armazene os GUIDs de entidade: Salve o
entityGuidretornado das operações de criação. Você precisará disso para ler, atualizar e excluir cadernos. - Valide o JSON antes do upload: certifique-se de que a carga do seu caderno seja um JSON válido e esteja em conformidade com o esquema
versionantes de enviar. - Use nomes descritivos: os nomes dos notebooks devem ser exclusivos dentro de uma organização, portanto, escolha nomes que indiquem claramente o propósito (por exemplo,
prod-checkout-investigationem vez denotebook-1). - Incluir todas as tags na atualização: as atualizações de tag substituem todo o conjunto de tags. Sempre leia as tags existentes antes de modificar.
- Recupere rapidamente: o histórico de versões é retido por apenas 1 dia. Se você precisar de histórico de longo prazo, arquive o conteúdo do caderno em seu próprio armazenamento a cada atualização.
- Proteja sua chave de API: Nunca exponha sua chave de API de Usuário em código do lado do cliente ou repositórios públicos.
- Verifique os códigos de status HTTP: A API retorna 2xx para operações bem-sucedidas, 404 para não encontrado e outros códigos de status para erros.
Respostas de erro comuns
Código de status | Descrição | Solução |
|---|---|---|
| Parâmetros de solicitação inválidos, JSON malformado no corpo ou no cabeçalho
, ou o nome do notebook já existe nesta organização | Verifique o formato da solicitação, os valores do cabeçalho e se o nome do caderno é exclusivo em sua organização |
| Chave de API ausente ou inválida | Verifique se sua chave de API de usuário é válida e está incluída no cabeçalho
|
| Caderno ou versão não encontrada | Verifique se o GUID da entidade está correto. |
| Cabeçalho
incorreto | Usar
|
Recursos adicionais
- Visão geral dos cadernos — Como usar os cadernos na interface do New Relic
- Introdução ao NerdGraph — Referência da API do GraphQL
- API do Blob Storage para configurações do agente — API irmã usada por Fleet Control
- Chaves de API do New Relic — Tipos de chave e gerenciamento