La habilitación del consumo de métricas históricas te permite recopilar valores de métrica con marcas de tiempo anteriores a una hora desde el momento del envío, pero no anteriores a tu periodo de conservación total de métricas (por defecto, 15 meses).
Tener habilitado el consumo de métricas históricas para tus métricas puede ser útil para una variedad de casos de uso, como la recuperación luego de una interrupción, la corrección de valores erróneos y la gestión de retrasos de IoT.
Datadog clasifica las métricas históricas como puntos de métricas con marcas de tiempo que tienen más de una hora de antigüedad con respecto al momento del envío. Si el consumo de métricas históricas no está habilitado, no se consumen valores de métricas de más de una hora de antigüedad.
Por ejemplo, tu métrica (exampleMetricA) emite un valor a Datadog a la 1:00 PM EST y la marca de tiempo de ese valor es 10:00 AM EST. Este valor de métrica se clasifica como histórico porque tiene una marca de tiempo 3 horas más antigua en relación con la hora del envío.
Con el consumo de métricas históricas habilitado, si envías varios valores con la misma marca de tiempo y la misma combinación de valor-etiqueta (tag) a Datadog, Datadog conserva el valor enviado más recientemente. Es decir, si dentro de la misma marca de tiempo, envías una métrica con un valor de X, y también envías esa métrica con un valor de Y, se conservará el valor que se haya enviado más recientemente.
Puedes empezar a consumir valores de métricas históricas habilitando el consumo de métricas históricas en la página Resumen de métricas para los tipos de métricas Recuento, Tasa e Indicador.
Nota: El consumo de métricas históricas no está disponible para tus métricas de distribución.
Haz clic en el nombre de la métrica para la que quieres habilitar el consumo de métricas históricas, para abrir el panel lateral con los detalles de la métrica.
Dentro de la sección Advanced (Avanzado) del panel lateral, haz clic en Configure (Configurar).
Selecciona el conmutador Enable historical metrics (Habilitar métricas históricas) y pulsa Save (Guardar).
Especifica un prefijo en el espacio de nombres de la métrica para habilitar el consumo de métricas históricas en todas las métricas que coinciden con ese espacio de nombres.
Después de habilitar el consumo de métricas históricas, puedes enviar valores de métricas con marcas de tiempo históricas a través de la API o a través del Agent.
Con la API, puedes enviar valores de métricas con marcas de tiempo históricas en la carga útil (siempre que el nombre de la métrica ya se haya habilitado para aceptar métricas históricas a través de la interfaz de usuario descrita anteriormente).
"""
El envío de métricas devuelve la respuesta "Payload accepted"
"""fromdatetimeimportdatetimefromdatadog_api_clientimportApiClient,Configurationfromdatadog_api_client.v2.api.metrics_apiimportMetricsApifromdatadog_api_client.v2.model.metric_intake_typeimportMetricIntakeTypefromdatadog_api_client.v2.model.metric_payloadimportMetricPayloadfromdatadog_api_client.v2.model.metric_pointimportMetricPointfromdatadog_api_client.v2.model.metric_resourceimportMetricResourcefromdatadog_api_client.v2.model.metric_seriesimportMetricSeriesbody=MetricPayload(series=[MetricSeries(metric="system.load.1",type=MetricIntakeType.UNSPECIFIED,points=[MetricPoint(""" Añadir marca de tiempo histórica aquí """timestamp=int(datetime.now().timestamp()),""" *********************** """value=0.7,),],resources=[MetricResource(name="dummyhost",type="host",),],),],)configuration=Configuration()withApiClient(configuration)asapi_client:api_instance=MetricsApi(api_client)response=api_instance.submit_metrics(body=body)print(response)
// El envío de métricas devuelve la respuesta "Payload accepted"importcom.datadog.api.client.ApiClient;importcom.datadog.api.client.ApiException;importcom.datadog.api.client.v2.api.MetricsApi;importcom.datadog.api.client.v2.model.IntakePayloadAccepted;importcom.datadog.api.client.v2.model.MetricIntakeType;importcom.datadog.api.client.v2.model.MetricPayload;importcom.datadog.api.client.v2.model.MetricPoint;importcom.datadog.api.client.v2.model.MetricResource;importcom.datadog.api.client.v2.model.MetricSeries;importjava.time.OffsetDateTime;importjava.util.Collections;publicclassExample{publicstaticvoidmain(String[]args){ApiClientdefaultClient=ApiClient.getDefaultApiClient();MetricsApiapiInstance=newMetricsApi(defaultClient);MetricPayloadbody=newMetricPayload().series(Collections.singletonList(newMetricSeries().metric("system.load.1").type(MetricIntakeType.UNSPECIFIED).points(Collections.singletonList(newMetricPoint()//Añadir marca de tiempo histórica aquí.timestamp(OffsetDateTime.now().toInstant().getEpochSecond())//***********************.value(0.7))).resources(Collections.singletonList(newMetricResource().name("dummyhost").type("host")))));try{IntakePayloadAcceptedresult=apiInstance.submitMetrics(body);System.out.println(result);}catch(ApiExceptione){System.err.println("Exception when calling MetricsApi#submitMetrics");System.err.println("Status code: "+e.getCode());System.err.println("Reason: "+e.getResponseBody());System.err.println("Response headers: "+e.getResponseHeaders());e.printStackTrace();}}}
// El envío de métricas devuelve la respuesta "Payload accepted"
packagemainimport("context""encoding/json""fmt""os""time""github.com/DataDog/datadog-api-client-go/v2/api/datadog""github.com/DataDog/datadog-api-client-go/v2/api/datadogV2")funcmain(){body:=datadogV2.MetricPayload{Series:[]datadogV2.MetricSeries{{Metric:"system.load.1",Type:datadogV2.METRICINTAKETYPE_UNSPECIFIED.Ptr(),Points:[]datadogV2.MetricPoint{{//Añadir marca de tiempo histórica aquí
Timestamp:datadog.PtrInt64(time.Now().Unix()),//***********************
Value:datadog.PtrFloat64(0.7),},},Resources:[]datadogV2.MetricResource{{Name:datadog.PtrString("dummyhost"),Type:datadog.PtrString("host"),},},},},}ctx:=datadog.NewDefaultContext(context.Background())configuration:=datadog.NewConfiguration()apiClient:=datadog.NewAPIClient(configuration)api:=datadogV2.NewMetricsApi(apiClient)resp,r,err:=api.SubmitMetrics(ctx,body,*datadogV2.NewSubmitMetricsOptionalParameters())iferr!=nil{fmt.Fprintf(os.Stderr,"Error when calling `MetricsApi.SubmitMetrics`: %v\n",err)fmt.Fprintf(os.Stderr,"Full HTTP response: %v\n",r)}responseContent,_:=json.MarshalIndent(resp,""," ")fmt.Fprintf(os.Stdout,"Response from `MetricsApi.SubmitMetrics`:\n%s\n",responseContent)}
# El envío de métricas devuelve la respuesta "Payload accepted"require"datadog_api_client"api_instance=DatadogAPIClient::V2::MetricsAPI.newbody=DatadogAPIClient::V2::MetricPayload.new({series:[DatadogAPIClient::V2::MetricSeries.new({metric:"system.load.1",type:DatadogAPIClient::V2::MetricIntakeType::UNSPECIFIED,points:[DatadogAPIClient::V2::MetricPoint.new({#Añadir marca de tiempo histórica aquí timestamp:Time.now.to_i,#*********************** value:0.7,}),],resources:[DatadogAPIClient::V2::MetricResource.new({name:"dummyhost",type:"host",}),],}),],})papi_instance.submit_metrics(body)
/**
* El envío de métricas devuelve la respuesta "Payload accepted"
*/import{client,v2}from"@datadog/datadog-api-client";constconfiguration=client.createConfiguration();constapiInstance=newv2.MetricsApi(configuration);constparams: v2.MetricsApiSubmitMetricsRequest={body:{series:[{metric:"system.load.1",type:0,points:[{//Añadir marca de tiempo histórica aquí
timestamp: Math.round(newDate().getTime()/1000),//***********************
value: 0.7,},],resources:[{name:"dummyhost",type:"host",},],},],},};apiInstance.submitMetrics(params).then((data: v2.IntakePayloadAccepted)=>{console.log("API called successfully. Returned data: "+JSON.stringify(data));}).catch((error: any)=>console.error(error));
## Puntos dinámicos# Datos posteriores a las series temporales que pueden representarse gráficamente en dashboards Datadog.# Variables de plantillaexportNOW="$(date +%s)"# Comando Curl curl -X POST "https://api.datadoghq.com/api/v2/series"\
-H "Accept: application/json"\
-H "Content-Type: application/json"\
-H "DD-API-KEY: ${DD_API_KEY}"\
-d @- << EOF
{
"series": [
{
"metric": "system.load.1",
"type": 0,
"points": [
{
# Añadir marca de tiempo histórica aquí
"timestamp": 1636629071,
# ***********************
"value": 0.7
}
],
"resources": [
{
"name": "dummyhost",
"type": "host"
}
]
}
]
}
EOF
Para enviar métricas históricas con el Agent, asegúrate de tener instalada la versión del Agent 7.40.0 o posterior. Esta versión incluye una interfaz DogStatsD actualizada, compatible con Java, GoLang y .NET. Esto te permite enviar puntos de métricas retrasados a través del Agent.
Las métricas históricas se contabilizan y facturan como métricas personalizadas indexadas. Las métricas personalizadas facturables se determinan por la **marca de tiempo de las métricas enviadas", independientemente de si tienen una marca de tiempo de hoy o de 15 meses en el pasado. Mientras la combinación de nombre de métrica y valor de etiqueta esté informando activamente de CUALQUIER valor (independientemente de la marca de tiempo), se considerará activa en la hora en que se envió. Para obtener más información, consulte la documentación Facturación de métricas personalizadas.
Realiza un seguimiento de tus métricas históricas indexadas en la sección Resumen de uso, de la página Plan y uso.