Se nossas soluções de encaminhamento de logs não atenderem às suas necessidades, você poderá usar nossa Log API para enviar dados log diretamente para o New Relic por meio de um endpoint HTTP.
Endpoint HTTP
Use o endpoint aplicável à sua conta New Relic:
Endpoint dos Estados Unidos (EUA):
https://log-api.newrelic.com/log/v1
DaUnião Europeia (UE): endpoint
https://log-api.eu.newrelic.com/log/v1
Endpoint FedRAMP:
https://gov-log-api.newrelic.com/log/v1
Configuração HTTP
Para enviar dados log para sua conta New Relic por meio da API log :
Obtenha seu .
Revise os limites e caracteres restritos para sua carga JSON.
Gere a mensagem JSON usando os cabeçalhos e campos de corpo necessários.
Certifique-se de que
Api-Key
ouLicense-Key
esteja incluído nos cabeçalhos ou no parâmetro de consulta. Consulte os exemplos de log JSON.Envie sua mensagem JSON para o endpoint HTTP apropriado para sua conta New Relic em uma solicitação
POST
.- NÓS:
https://log-api.newrelic.com/log/v1
- UE:
https://log-api.eu.newrelic.com/log/v1
- FedRAMP:
https://gov-log-api.newrelic.com/log/v1
- NÓS:
Gere algum tráfego e aguarde alguns minutos e, em seguida, verifique os dados da sua conta .
Se nenhum dado aparecer após você ativar nossos recursos , siga nossos procedimentos de resolução de problemas.
Cabeçalhos HTTP
Ao criar seus cabeçalhos HTTP, use estas diretrizes:
Cabeçalho | Valores suportados |
---|---|
Obrigatório |
|
A formatação JSON compactada com gzip é aceita. Se estiver enviando JSON compactado, inclua os cabeçalhos Content-Type: application/json
e Content-Encoding: gzip
.
Autenticação
Seu serve para autenticar sua solicitação na API log e determina a conta New Relic onde suas mensagens de log enviadas serão gravadas. Ele precisa ser passado como um cabeçalho HTTP ou um parâmetro de string de consulta.
Opção 1: autenticar usando cabeçalho HTTP
Passe sua chave de licença adicionando um cabeçalho HTTP personalizado conforme descrito abaixo:
Cabeçalho | Valores suportados |
---|---|
| Uma New Relic . Você também pode enviar isso via parâmetro de consulta. |
Opção 2: autenticar usando o parâmetro de string de consulta (autenticação sem cabeçalho)
A chave de licença também pode ser passada como um parâmetro de string de consulta na URL. Isto é útil ao enviar log de fontes baseadas em nuvem que não permitem cabeçalhos de solicitação HTTP personalizados.
Exemplo: https://LOG_API_ENDPOINT/log/v1?Api-Key=YOUR_API_KEY_HERE
Parâmetro de consulta | Valor |
---|---|
| Seu . Você também pode enviar isso via cabeçalho HTTP. |
Corpo JSON
Você pode enviar sua mensagem JSON usando um conjunto de atributos simplificado ou detalhado:
Tipos de atributos suportados
Atributo pode ser de qualquer um dos seguintes tipos:
Digite a solicitação JSON | Tipo armazenado no banco de dados New Relic |
---|---|
|
|
|
|
|
|
|
|
|
|
|
|
Matriz | (sem suporte) |
Limites e caracteres restritos
Cuidado
Evite chamar nossa API dentro do código de um aplicativo voltado para o cliente. Isso pode causar problemas de desempenho ou bloquear seu aplicativo se o tempo de resposta for lento. Se precisar fazer desta forma, chame nossa API de forma assíncrona para evitar esses problemas de desempenho.
Restrições no log enviado para a API log :
Tamanho total da carga útil:
1MB(10^6 bytes) maximum per POST
. É altamente recomendável usar compactação.
A carga deve ser codificada como
UTF-8
.
Número de atributo por evento: máximo 255.
Comprimento do nome do atributo: 255 caracteres.
Comprimento do valor do atributo: os primeiros 4.094 caracteres são armazenados no NRDB como um campo de evento
Log
com o mesmo nome, comomessage
. Se o valor da string exceder 4.094 caracteres, armazenamos a string longa como um blob.
Alguns atributos específicos possuem restrições adicionais:
accountId
: este é um nome de atributo reservado. Se estiver incluído, será descartado durante a ingestão.appId
: Deve ser um número inteiro. Ao usar um tipo de dados não inteiro, os dados serão ingeridos, mas se tornarão inquestionáveis.entity.guid
,entity.name
eentity.type
: Esses atributo são usados internamente para identificar entidade. Quaisquer valores enviados com essas chaves na seção atributo de um ponto de dados métricos podem causar comportamento indefinido, como falta de entidade na UI ou telemetria não associada à entidade esperada. Para mais informações consulte a síntese da entidade.eventType
: este é um nome de atributo reservado. Se estiver incluído, será descartado durante a ingestão.timestamp
: deve ser um timestamp da época Unix (em segundos ou milissegundos) ou um timestamp formatado em ISO8601.
Importante
Carga com carimbo de data/hora superior a 48 horas poderá ser descartada.
Limites de taxa no log enviado para a API log :
- Taxa máxima de solicitações HTTP enviadas à API log : 300.000 solicitações por minuto
- Taxa máxima de bytes JSON de log descompactados enviados para a API de log: 10 GB por minuto
Violação do limite de taxa
Exceder os limites de taxa afeta o comportamento da API log . Siga estas instruções se isso acontecer.
Formato de carga log
Aceitamos qualquer carga JSON válida. A carga deve ser codificada como UTF-8.
Atributo da mensagem JSON
Análise de atributo de mensagem JSON
Nossos recursos de gerenciamento de logs analisarão qualquer atributo message
como JSON. O atributo JSON resultante na mensagem analisada será adicionado ao evento. Se o atributo message
não for JSON, ele será deixado como está.
Aqui está um exemplo de atributo message
:
{ "timestamp": 1562767499238, "message": "{\"service-name\": \"login-service\", \"user\": {\"id\": 123, \"name\": \"alice\"}}"}
Isso será tratado como:
{ "timestamp": 1562767499238, "service-name": "login-service", "user": { "id": 123, "name": "alice" }}
Log exemplos JSON
Atributo podem ser tipos JSON escalares como string e número. Eles também podem ser objetos compostos (ou aninhados). Atributo composto terá seu atributo associado armazenado com nomes achatados.
Por exemplo, aqui está um atributo user
composto nos atributos de uma entrada de log :
"attributes": { "action": "login", "user": { "id": 123, "name": "alice" }}
Isso resultará no seguinte atributo sendo armazenado com o evento de log:
Atributo | Valor |
---|---|
|
|
|
|
|
|
Exemplo de mensagem POST log
Exemplo de mensagem log POST
:
$POST /log/v1 HTTP/1.1$Host: log-api.newrelic.com$Content-Type: application/json$Api-Key: <YOUR_LICENSE_KEY>$Accept: */*$Content-Length: 319$[{$ "common": {$ "attributes": {$ "logtype": "accesslogs",$ "service": "login-service",$ "hostname": "login.example.com"$ }$ },$ "logs": [{$ "timestamp": <TIMESTAMP_IN_UNIX_EPOCH_OR_IS08601_FORMAT>,$ "message": "User 'xyz' logged in"$ },{$ "timestamp": <TIMESTAMP_IN_UNIX_EPOCH_OR_IS08601_FORMAT>,$ "message": "User 'xyz' logged out",$ "attributes": {$ "auditId": 123$ }$ }]$}]
Essa mensagem POST
resultaria no armazenamento da seguinte mensagem do log no New Relic:
Atributo | Valor |
---|---|
|
|
|
|
|
|
Aqui está um exemplo de atributo de bloco de log armazenado:
Atributo | Valor |
---|---|
|
|
|
|
|
|
Exemplo de solicitação JSON POST
Aqui está um exemplo de solicitação JSON POST:
$POST /log/v1 HTTP/1.1$Host: log-api.newrelic.com$Content-Type: application/json$Api-Key: <YOUR_LICENSE_KEY>$Accept: */*$Content-Length: 133${$ "timestamp": <TIMESTAMP_IN_UNIX_EPOCH_OR_IS08601_FORMAT>,$ "message": "User 'xyz' logged in",$ "logtype": "accesslogs",$ "service": "login-service",$ "hostname": "login.example.com"$}
Qual é o próximo?
Explore os dados de registro em sua plataforma.
- Obtenha visibilidade mais profunda dos dados de desempenho do seu aplicativo e da sua plataforma encaminhando seu log com nossos recursos logs contextualizados .
- Configure o alerta.
- consulte seus dados e crie dashboard.