Detalhes e características do Data Streaming
Entrega de Dados
O Data Streaming utiliza diferentes tecnologias para exportar dados e a confiabilidade de entrega pode variar dependendo do formato e do destino escolhido.
-
Exportação via OpenTelemetry (OTLP) Ao exportar dados em formato OTLP para destinos como Dynatrace, Datadog ou AWS S3, podem ocorrer limitações de completude inerentes ao modelo do OpenTelemetry. Esse formato é mais adequado para cenários de observabilidade (como monitoramento de performance e rastreamento de eventos), nos quais análises baseadas em amostras costumam ser suficientes para identificar falhas e anomalias. Não é indicado para dados de negócio que exijam precisão integral.
-
Exportação em formato JSON A exportação em JSON oferece uma taxa de entrega geralmente mais confiável. Essa opção é recomendada para situações em que a integridade dos dados tem maior prioridade, mas ainda sim, não recomendamos para uso em sistemas de tomada de decisão crítica que dependam de 100% dos dados para correta operação.
O arquivo JSON é enviado compactado (formato gz).
Veja também: Limites de uso do Data Streaming. |
Observabilidade x Análise de dados
Entenda a diferença entre os dois conceitos que, embora relacionados, têm objetivos distintos:
-
Observabilidade: acompanha o comportamento e saúde dos sistemas em tempo real. Utiliza dados de telemetria, como métricas, logs e traces e faz análises por meio de amostragem inteligente, que pode reduzir o volume de dados quando tudo está operando normalmente. A pipeline é otimizada para velocidade e eficiência, priorizando a detecção rápida de problemas.
-
Análise de dados (Analytics): foca no entendimento do negócio e comportamento dos usuários. Utiliza dados históricos para análises detalhadas, geração de relatórios e tomada de decisões estratégicas. A pipeline prioriza abrangência.
|
Dados e Dimensões de Traces
Os traces enviados no formato OTLP são gerados no próprio gateway da Sensedia. Isso significa que eles são apartados de qualquer trace distribuído que a sua aplicação cliente possa ter gerado. Atualmente, enviamos apenas a dimensão de trace.
Exemplos
Veja exemplos de como os arquivos podem ser exportados para diferentes destinos.
-
Exemplo OTLP
Veja um exemplo de arquivo no formato OTLP, enviado para AWS S3:
{ "resourceSpans": [ { "resource": { "attributes": [ { "key": "service.name", "value": { "stringValue": "checkout-service" } }, { "key": "service.version", "value": { "stringValue": "1.3.2" } }, { "key": "host.name", "value": { "stringValue": "ip-10-0-0-15" } } ] }, "scopeSpans": [ { "scope": { "name": "io.opentelemetry.contrib.mongodb", "version": "0.39.0" }, "spans": [ { "traceId": "d4cda95b652f4a1592b449d5929fda1b", "spanId": "6e0c63257de34c92", "parentSpanId": "1111111111111111", "name": "MongoDB INSERT orders", "kind": "SPAN_KIND_CLIENT", "startTimeUnixNano": "1693666548745123456", "endTimeUnixNano": "1693666548756789012", "attributes": [ { "key": "db.system", "value": { "stringValue": "mongodb" } }, { "key": "db.name", "value": { "stringValue": "ecommerce" } }, { "key": "net.peer.name", "value": { "stringValue": "mongo-primary" } } ], "status": { "code": "STATUS_CODE_OK" } } ] } ] } ] }
-
Exemplo JSON
Veja um exemplo de arquivo exportado em formato JSON para S3, Azure Blob ou GCS:
{ "apiName": "Test API", "resourceId": 280767, "completeUrl": "GET https://api-sample.sensedia-eng.com/sample/test ", "appDeveloper": "test", "apiComponentType": "OPERATION", "billing": true, "trace": "[{"timeMillis":20,"message":"Choosing route between 316 possible alternatives", ... }]", "environmentName": "Staging", "operationName": "Test API GET /sample", "resultStatus": 200, "requestHeaders": "host: randomapi.sensedia.com\nuser-agent: Mozilla/5.0 ...", "responseHeaders": "date: Mon, 13 May 2024 13:58:54 GMT\ncontent-type: application/json", "billingData": { "accessTokenBalance": "4", "appBalance": "2", "accessTokenBillingQuota": "3", "appBillingQuota": "1", "billingValue": "123" }, "receivedOnDate": "2024/05/13 13:58:53 +0000" }
O exemplo acima foi reduzido para facilitar a leitura.
Nos arquivos reais, os campostrace
,requestHeaders
eresponseHeaders
podem conter informações mais extensas.
Se preferir, você pode baixar um arquivo completo de exemplo no formato JSON aqui:-
Estrutura de pastas
A estrutura de diretórios varia conforme o provedor de armazenamento.
No caso do JSON para AWS S3, Azure e Google Cloud, a organização segue o padrão:s3://<bucket-name>/<environment>/<year>/<month>/<day>/<hour>/<file>.json
Exemplo:
/analytics/{internal-identifier}/year=2024/month=05/day=13/hour=19/{file_name}.json
{internal_identifier} = ponto de controle da Sensedia.
-
Share your suggestions with us!
Click here and then [+ Submit idea]