Opciones de configuración: Application Insights de Azure Monitor para Java

Nota

El 31 de marzo de 2025 finalizará la compatibilidad con la ingesta de claves de instrumentación. La ingesta de claves de instrumentación seguirá funcionando, pero la característica ya no recibirá actualizaciones ni soporte técnico. Transición a las cadenas de conexión para aprovechar las nuevas funcionalidades.

Cadena de conexión y nombre de rol

La cadena de conexión y el nombre de rol son las opciones de configuración más comunes que se necesitan para empezar:

{
  "connectionString": "...",
  "role": {
    "name": "my cloud role name"
  }
}

Se requiere la cadena de conexión. El nombre del rol es importante cada vez que se envían datos de diferentes aplicaciones al mismo recurso de Application Insights.

Encontrará más información y opciones de configuración en las secciones siguientes.

Ruta del archivo de configuración

De forma predeterminada, Application Insights Java 3.x espera que el archivo de configuración se denomine applicationinsights.json y que se encuentre en el mismo directorio que applicationinsights-agent-3.4.4.jar.

Puede especificar su propia ruta de acceso del archivo de configuración mediante una de estas dos opciones:

  • La variable de entorno APPLICATIONINSIGHTS_CONFIGURATION_FILE
  • la propiedad del sistema Java applicationinsights.configuration.file.

Si especifica una ruta de acceso relativa, se resolverá de forma relativa al directorio en el que se encuentra applicationinsights-agent-3.4.4.jar.

Como alternativa, en lugar de usar un archivo de configuración, puede especificar todo el contenido de la configuración JSON a través de la variable de entorno APPLICATIONINSIGHTS_CONFIGURATION_CONTENT.

Cadena de conexión

Se requiere la cadena de conexión. Puede encontrar la cadena de conexión en el recurso de Application Insights.

Captura de pantalla que muestra una cadena de conexión de Application Insights.

{
  "connectionString": "..."
}

También puede establecer la cadena de conexión mediante la variable de entorno APPLICATIONINSIGHTS_CONNECTION_STRING. Así, tiene prioridad sobre la cadena de conexión especificada en la configuración JSON.

O bien, puede establecer la cadena de conexión mediante la propiedad del sistema applicationinsights.connection.string Java. También tiene prioridad sobre la cadena de conexión especificada en la configuración JSON.

También puede establecer la cadena de conexión especificando un archivo desde donde cargar la cadena de conexión.

Si especifica una ruta de acceso relativa, se resuelve de forma relativa en el directorio en el que se encuentra applicationinsights-agent-3.4.4.jar.

{
  "connectionString": "${file:connection-string-file.txt}"
}

El archivo solo debe contener la cadena de conexión y nada más.

Si no se establece la cadena de conexión, se deshabilita el agente de Java.

Si tiene varias aplicaciones implementadas en la misma JVM y quiere que envíen telemetría a claves de instrumentación diferentes, consulte Invalidaciones de clave de instrumentación (versión preliminar).

Nombre del rol en la nube

Este se usa para etiquetar el componente en el mapa de aplicación.

Si quiere establecer el nombre del rol de nube, haga lo siguiente:

{
  "role": {   
    "name": "my cloud role name"
  }
}

Si no se establece el nombre del rol en la nube, se usará el nombre del recurso de Application Insights para etiquetar el componente en el mapa de aplicación.

También puede establecer el nombre de rol en la nube mediante la variable de entorno APPLICATIONINSIGHTS_ROLE_NAME. Así, tiene prioridad sobre el nombre del rol en la nube especificado en la configuración JSON.

O bien, puede establecer el nombre del rol en la nube mediante la propiedad applicationinsights.role.name del sistema Java. También tiene prioridad sobre el nombre del rol en la nube especificado en la configuración JSON.

Si tiene varias aplicaciones implementadas en la misma JVM y quiere que envíen telemetría a nombres de rol en la nube diferentes, consulte Invalidaciones de nombre de rol en la nube (versión preliminar).

Instancia de rol en la nube

La instancia de rol de la nube tiene como valor predeterminado el nombre del equipo.

Si quiere establecer la instancia de rol de nube en un valor diferente en lugar del nombre del equipo, use lo siguiente:

{
  "role": {
    "name": "my cloud role name",
    "instance": "my cloud role instance"
  }
}

También puede establecer la instancia de rol en la nube mediante la variable de entorno APPLICATIONINSIGHTS_ROLE_INSTANCE. Así, tiene prioridad sobre la instancia del rol en la nube especificada en la configuración JSON.

O bien, puede establecer la instancia de rol en la nube mediante la propiedad applicationinsights.role.instance del sistema Java. También tiene prioridad sobre la instancia de rol en la nube especificada en la configuración JSON.

muestreo

Nota:

El muestreo puede ser una excelente manera de reducir el costo de Application Insights. Asegúrese de configurar el muestreo correctamente para su caso de uso.

El muestreo se basa en la solicitud, lo que significa que si se captura (muestrea) una solicitud, también lo son sus dependencias, registros y excepciones.

Además, el muestreo se basa en el identificador de seguimiento para que pueda tomar decisiones de muestreo coherentes en diferentes servicios.

Muestreo de velocidad limitada

A partir de la versión 3.4.0, el muestreo de velocidad limitada está disponible y ahora es el método predeterminado.

Si no se ha configurado ningún muestreo, el método predeterminado es el muestreo de velocidad limitada que se ha configurado para capturar como máximo cinco solicitudes por segundo (aproximadamente), junto con todas las dependencias y los registros de esas solicitudes.

Esta configuración reemplaza al método predeterminado anterior, que era capturar todas las solicitudes. Si quiere capturar todas las solicitudes, use el muestreo de porcentaje fijo y establezca el porcentaje de muestreo en 100.

Nota

El muestreo de velocidad limitada es aproximado, ya que internamente debe adaptar un porcentaje de muestreo "fijo" a lo largo del tiempo para emitir recuentos precisos de elementos en cada registro de telemetría. Internamente, el muestreo limitado de velocidad se ajusta para adaptarse rápidamente (0,1 segundos) a nuevas cargas de aplicación. Por este motivo, no debería ver que supera la tasa configurada por mucho, o por mucho tiempo.

Este ejemplo muestra cómo puede establecer el muestreo para capturar, como máximo, 1 solicitud por segundo (aproximadamente):

{
  "sampling": {
    "requestsPerSecond": 1.0
  }
}

Tenga en cuenta que requestsPerSecond puede ser un decimal, por lo que puede configurarlo para capturar menos de una solicitud por segundo si lo desea. Por ejemplo, un valor de 0.5 significa capturar como máximo una solicitud cada dos segundos.

También puede establecer el porcentaje de muestreo mediante la variable de entorno APPLICATIONINSIGHTS_SAMPLING_REQUESTS_PER_SECOND. Así, tiene prioridad sobre el límite de velocidad especificado en la configuración JSON.

Muestreo de porcentaje fijo

En este ejemplo se muestra cómo establecer el muestreo para capturar aproximadamente un tercio de todas las solicitudes:

{
  "sampling": {
    "percentage": 33.333
  }
}

También puede establecer el porcentaje de muestreo mediante la variable de entorno APPLICATIONINSIGHTS_SAMPLING_PERCENTAGE. Así, tiene prioridad sobre el porcentaje de muestreo especificado en la configuración JSON.

Nota

Para el porcentaje de muestreo, elija un porcentaje que esté cerca de 100/N, donde N es un número entero. Actualmente el muestreo no es compatible con otros valores.

Invalidaciones de muestreo (versión preliminar)

Esta característica se encuentra en versión preliminar desde la versión 3.0.3.

Las invalidaciones de muestreo permiten invalidar el porcentaje de muestreo predeterminado. Por ejemplo, puede:

  • Establezca el porcentaje de muestreo en cero (o algún valor pequeño) para las comprobaciones de estado irrelevantes.
  • Establezca el porcentaje de muestreo en cero (o algún valor pequeño) para las llamadas de dependencia irrelevantes.
  • Establezca el porcentaje de muestreo en 100 para un tipo de solicitud importante. Por ejemplo, puede usar /login aunque tenga el muestreo predeterminado configurado en algún valor más bajo.

Para obtener más información, consulte la documentación sobre invalidaciones de muestreos.

Métricas JMX

Si quiere recopilar algunas métricas de JMX adicionales:

{
  "jmxMetrics": [
    {
      "name": "JVM uptime (millis)",
      "objectName": "java.lang:type=Runtime",
      "attribute": "Uptime"
    },
    {
      "name": "MetaSpace Used",
      "objectName": "java.lang:type=MemoryPool,name=Metaspace",
      "attribute": "Usage.used"
    }
  ]
}

En el ejemplo de configuración anterior:

  • name es el nombre de la métrica que se asignará a esta métrica de JMX (puede ser cualquier nombre).
  • objectName es el objectName del método JMX de MBean que desea recopilar.
  • attribute es el nombre del método JMX de MBean que desea recopilar.

Se admiten los valores de métrica JMX numéricos y booleanos. Las métricas JMX booleanas se asignan a 0 para false y 1 para true.

Dimensiones personalizadas

Si desea agregar dimensiones personalizadas a toda la telemetría:

{
  "customDimensions": {
    "mytag": "my value",
    "anothertag": "${ANOTHER_VALUE}"
  }
}

${...} se puede usar para leer el valor de la variable de entorno especificada en el inicio.

Nota

A partir de la versión 3.0.2, si agrega una dimensión personalizada denominada service.version, el valor se almacena en la columna application_Version de la tabla de registros de Application Insights en lugar de como una dimensión personalizada.

Atributo heredado (versión preliminar)

A partir de la versión 3.2.0, si desea establecer una dimensión personalizada mediante programación en la telemetría de la solicitud y que la herede la siguiente telemetría de dependencias:

{
  "inheritedAttributes": [
    {
      "key": "mycustomer",
      "type": "string"
    }
  ]
}

Invalidaciones de la cadena de conexión (versión preliminar)

Esta característica se encuentra en versión preliminar desde la versión 3.4.0.

Las invalidaciones de cadena de conexión permiten invalidar la cadena de conexión predeterminada. Por ejemplo, puede:

  • Establezca una cadena de conexión para un prefijo de ruta de acceso HTTP /myapp1.
  • Establezca otra cadena de conexión para otro prefijo de ruta de acceso HTTP /myapp2/.
{
  "preview": {
    "connectionStringOverrides": [
      {
        "httpPathPrefix": "/myapp1",
        "connectionString": "..."
      },
      {
        "httpPathPrefix": "/myapp2",
        "connectionString": "..."
      }
    ]
  }
}

Invalidaciones de clave de instrumentación (versión preliminar)

Esta característica se encuentra en versión preliminar desde la versión 3.2.3.

Las invalidaciones de claves de instrumentación permiten invalidar la clave de instrumentación predeterminada. Por ejemplo, puede:

  • Establezca una clave de instrumentación para un prefijo de ruta de acceso /myapp1.
  • Establezca otra clave de instrumentación para otro prefijo de ruta de acceso HTTP /myapp2/.
{
  "preview": {
    "instrumentationKeyOverrides": [
      {
        "httpPathPrefix": "/myapp1",
        "instrumentationKey": "12345678-0000-0000-0000-0FEEDDADBEEF"
      },
      {
        "httpPathPrefix": "/myapp2",
        "instrumentationKey": "87654321-0000-0000-0000-0FEEDDADBEEF"
      }
    ]
  }
}

Invalidaciones de nombre de rol en la nube (versión preliminar)

Esta característica se encuentra en versión preliminar desde la versión 3.3.0.

Las invalidaciones de nombre de rol en la nube permiten invalidar el nombre de rol en la nube predeterminado. Por ejemplo, puede:

  • Establezca un nombre de rol en la nube para un prefijo de ruta de acceso HTTP /myapp1.
  • Establezca otro nombre de rol en la nube para otro prefijo de ruta de acceso HTTP /myapp2/.
{
  "preview": {
    "roleNameOverrides": [
      {
        "httpPathPrefix": "/myapp1",
        "roleName": "Role A"
      },
      {
        "httpPathPrefix": "/myapp2",
        "roleName": "Role B"
      }
    ]
  }
}

Colección automática de dependencias InProc (versión preliminar)

A partir de la versión 3.2.0, si desea capturar las dependencias "InProc" del controlador, use la configuración siguiente:

{
  "preview": {
    "captureControllerSpans": true
  }
}

Procesadores de telemetría (versión preliminar)

Puede usar procesadores de telemetría para reglas que se aplicarán a la telemetría de solicitudes, dependencias y seguimientos. Por ejemplo, puede:

  • Máscara de datos confidenciales.
  • Adición de dimensiones personalizadas condicionalmente
  • Actualizar el nombre del intervalo, que se usa para agregar telemetría similar en Azure Portal
  • Anulación de atributos de intervalo específicos para controlar los costos de ingesta.

Para obtener más información, consulte la documentación del procesador de telemetría.

Nota

Si quiere anular intervalos específicos (completos) para controlar el costo de la ingesta, consulte las invalidaciones de muestreo.

Registros recopilados automáticamente

Log4j, Logback, JBoss Logging y java.util.logging se instrumentan automáticamente. El registro realizado a través de estas plataformas de registro se recoge automáticamente.

El registro solo se captura si:

  • Cumple el nivel configurado para la plataforma de registro.
  • También cumple el nivel configurado para Application Insights.

Por ejemplo, si la plataforma de registro está configurada para registrar WARN (y versiones posteriores) del paquete com.example, y Application Insights está configurado para capturar INFO (y versiones posteriores), Application Insights solo capturará WARN (y versiones posteriores) del paquete com.example.

El nivel predeterminado configurado para Application Insights es INFO. Si quiere cambiar este nivel:

{
  "instrumentation": {
    "logging": {
      "level": "WARN"
    }
  }
}

También puede establecer el nivel mediante la variable de entorno APPLICATIONINSIGHTS_INSTRUMENTATION_LOGGING_LEVEL. Así, tiene prioridad sobre el nivel especificado en la configuración JSON.

Puede usar estos valores level válidos para especificar en el archivo applicationinsights.json. En la tabla se muestra cómo se corresponden con los niveles de registro en diferentes plataformas de registro.

Nivel Log4j Logback JBoss JUL
Apagado Apagado Apagado Apagado Apagado
FATAL FATAL ERROR FATAL SEVERE
ERROR (o SEVERE) ERROR ERROR ERROR SEVERE
WARN (o WARNING) WARN WARN WARN WARNING
INFO INFO INFO INFO INFO
CONFIG DEBUG DEBUG DEBUG CONFIG
DEBUG (o FINE) DEBUG DEBUG DEBUG FINE
FINER DEBUG DEBUG DEBUG FINER
TRACE (o FINEST) TRACE TRACE TRACE FINEST
ALL ALL ALL ALL ALL

Nota

Si se pasa un objeto de excepción al registrador, el mensaje de registro (y los detalles del objeto de excepción) se mostrarán en Azure Portal en la tabla exceptions, en lugar de en la tabla traces. Si quiere ver los mensajes de registro en las tablas traces y exceptions, puede escribir una consulta de registros (Kusto) para unirlos. Por ejemplo:

union traces, (exceptions | extend message = outerMessage)
| project timestamp, message, itemType

Marcadores de registro (versión preliminar)

A partir de la versión 3.4.2, puede capturar los marcadores de registro para Logback y Log4j 2:

{
  "preview": {
    "captureLogbackMarker":  true,
    "captureLog4jMarker":  true
  }
}

Atributos de registro adicionales para Logback (versión preliminar)

A partir de la versión 3.4.3, puede capturar FileName, ClassName, MethodName y LineNumber, para Logback:

{
  "preview": {
    "captureLogbackCodeAttributes": true
  }
}

Advertencia

La captura de estos atributos de registro adicionales puede agregar una sobrecarga de rendimiento.

Nivel de registro como una dimensión personalizada

A partir de la versión 3.3.0, LoggingLevel no se captura de manera predeterminada como parte de la dimensión personalizada de seguimientos, puesto que esos datos ya están capturados en el campo SeverityLevel.

Si es necesario, puede volver a habilitar temporalmente el comportamiento anterior:

{
  "preview": {
    "captureLoggingLevelAsCustomDimension": true
  }
}

Métricas de Micrometer recopiladas automáticamente (incluidas las métricas del accionador de Spring Boot)

Si la aplicación usa Micrometer, las métricas que se envían al registro global de Micrometer se recopilan automáticamente.

Además, si la aplicación usa el accionador de Spring Boot, las métricas configuradas por dicho accionador también se recopilan automáticamente.

Para deshabilitar la recopilación automática de métricas de Micrometer y del accionador de Spring Boot:

Nota

Las métricas personalizadas se facturan por separado y pueden generar costos adicionales. Asegúrese de consultar la información sobre los precios. Para deshabilitar las métricas de Micrometer y del accionador de Spring Boot, agregue la siguiente configuración al archivo de configuración.

{
  "instrumentation": {
    "micrometer": {
      "enabled": false
    }
  }
}

Enmascaramiento de consultas JDBC

Los valores literales de las consultas JDBC se enmascaran de forma predeterminada para evitar la captura accidental de datos confidenciales.

A partir de la versión 3.4.0, este comportamiento se puede deshabilitar. Por ejemplo:

{
  "instrumentation": {
    "jdbc": {
      "masking": {
        "enabled": false
      }
    }
  }
}

Enmascaramiento de consultas de Mongo

Los valores literales de las consultas Mongo se enmascaran de forma predeterminada para evitar la captura accidental de datos confidenciales.

A partir de la versión 3.4.0, este comportamiento se puede deshabilitar. Por ejemplo:

{
  "instrumentation": {
    "mongo": {
      "masking": {
        "enabled": false
      }
    }
  }
}

Encabezados HTTP

A partir de la versión 3.3.0 puede capturar los encabezados de solicitudes y respuestas de los datos de telemetría del servidor (solicitud):

{
  "preview": {
    "captureHttpServerHeaders": {
      "requestHeaders": [
        "My-Header-A"
      ],
      "responseHeaders": [
        "My-Header-B"
      ]
    }
  }
}

Las nombres de encabezado no distinguen mayúsculas de minúsculas.

Los ejemplos anteriores se capturarán en los nombres de propiedad http.request.header.my_header_a y http.response.header.my_header_b.

Del mismo modo, puede capturar encabezados de solicitud y respuesta en la telemetría del cliente (dependencia):

{
  "preview": {
    "captureHttpClientHeaders": {
      "requestHeaders": [
        "My-Header-C"
      ],
      "responseHeaders": [
        "My-Header-D"
      ]
    }
  }
}

De nuevo, los nombres de encabezado no distinguen mayúsculas de minúsculas. Los ejemplos anteriores se capturarán en los nombres de propiedad http.request.header.my_header_c y http.response.header.my_header_d.

Códigos de respuesta 4xx del servidor HTTP

De forma predeterminada, las solicitudes de servidor HTTP que producen códigos de respuesta 4xx se capturan como errores.

A partir de la versión 3.3.0, puede cambiar este comportamiento para capturarlas como correctas:

{
  "preview": {
    "captureHttpServer4xxAsError": false
  }
}

Supresión de la telemetría específica recopilada automáticamente

A partir de la versión 3.0.3, se puede suprimir la telemetría específica recopilada automáticamente mediante estas opciones de configuración:

{
  "instrumentation": {
    "azureSdk": {
      "enabled": false
    },
    "cassandra": {
      "enabled": false
    },
    "jdbc": {
      "enabled": false
    },
    "jms": {
      "enabled": false
    },
    "kafka": {
      "enabled": false
    },
    "micrometer": {
      "enabled": false
    },
    "mongo": {
      "enabled": false
    },
    "quartz": {
      "enabled": false
    },
    "rabbitmq": {
      "enabled": false
    },
    "redis": {
      "enabled": false
    },
    "springScheduling": {
      "enabled": false
    }
  }
}

También puede suprimir estas instrumentaciones estableciendo estas variables de entorno en false:

  • APPLICATIONINSIGHTS_INSTRUMENTATION_AZURE_SDK_ENABLED
  • APPLICATIONINSIGHTS_INSTRUMENTATION_CASSANDRA_ENABLED
  • APPLICATIONINSIGHTS_INSTRUMENTATION_JDBC_ENABLED
  • APPLICATIONINSIGHTS_INSTRUMENTATION_JMS_ENABLED
  • APPLICATIONINSIGHTS_INSTRUMENTATION_KAFKA_ENABLED
  • APPLICATIONINSIGHTS_INSTRUMENTATION_MICROMETER_ENABLED
  • APPLICATIONINSIGHTS_INSTRUMENTATION_MONGO_ENABLED
  • APPLICATIONINSIGHTS_INSTRUMENTATION_RABBITMQ_ENABLED
  • APPLICATIONINSIGHTS_INSTRUMENTATION_REDIS_ENABLED
  • APPLICATIONINSIGHTS_INSTRUMENTATION_SPRING_SCHEDULING_ENABLED

Estas variables tienen prioridad sobre las variables habilitadas especificadas en la configuración JSON.

Nota

Si busca un control más pormenorizado; por ejemplo, para suprimir algunas llamadas de Redis, pero no todas, consulte las invalidaciones de muestreos.

Instrumentaciones de la versión preliminar

A partir de la versión 3.2.0, puede habilitar las siguientes instrumentaciones de versión preliminar:

{
  "preview": {
    "instrumentation": {
      "akka": {
        "enabled": true
      },
      "apacheCamel": {
        "enabled": true
      },
      "grizzly": {
        "enabled": true
      },
      "play": {
        "enabled": true
      },
      "springIntegration": {
        "enabled": true
      },
      "vertx": {
        "enabled": true
      }
    }
  }
}

Nota

La instrumentación de Akka está disponible a partir de la versión 3.2.2. La instrumentación de la biblioteca HTTP de Vertx está disponible a partir de la versión 3.3.0.

Intervalo de métrica

Esta característica se encuentra en su versión preliminar.

De forma predeterminada, las métricas se capturan cada 60 segundos.

A partir de la versión 3.0.3, puede cambiar este intervalo:

{
  "preview": {
    "metricIntervalSeconds": 300
  }
}

La configuración se aplica a las métricas siguientes:

Latido

De forma predeterminada, Application Insights Java 3.x envía una métrica de latido cada 15 minutos. Si está usando la métrica de latido para desencadenar las alertas, puede aumentar la frecuencia de este latido:

{
  "heartbeat": {
    "intervalSeconds": 60
  }
}

Nota

No se puede aumentar el intervalo a más de 15 minutos, porque los datos de latido también se usan para hacer un seguimiento del uso de Application Insights.

Autenticación (versión preliminar)

Nota

La característica de autenticación está disponible a partir de la versión 3.2.0.

Puede usar la autenticación para configurar el agente para generar las credenciales de token necesarias para la autenticación de Azure Active Directory. Para obtener más información, vea la documentación de Autenticación.

Proxy HTTP

Si su aplicación está protegida por un firewall y no puede conectarse directamente a Application Insights (consulte Direcciones IP que emplea Application Insights), puede configurar Application Insights Java 3.x para que use un proxy HTTP:

{
  "proxy": {
    "host": "myproxy",
    "port": 8080
  }
}

Application Insights Java 3.x también respeta las propiedades del sistema https.proxyHost y https.proxyPort globales si se establecen (y http.nonProxyHosts si fuera necesario).

Recuperación de errores de ingesta

Cuando se produce un error en el envío de telemetría al servicio Application Insights, Application Insights Java 3.x almacena la telemetría en el disco y sigue reintentando desde el disco.

El límite predeterminado de la persistencia de disco es de 50 Mb. Si tiene un volumen elevado de telemetría o necesita poder recuperarse de interrupciones de servicio de ingesta o red más largas, puede aumentar este límite a partir de la versión 3.3.0:

{
  "preview": {
    "diskPersistenceMaxSizeMb": 50
  }
}

Diagnóstico automático

"Diagnóstico automático" hace referencia al registro interno de Application Insights Java 3.x. Esta funcionalidad puede ser útil para detectar y diagnosticar problemas con Application Insights.

De forma predeterminada, Application Insights Java 3.x registra en el nivel INFO tanto en el archivo applicationinsights.log como en la consola, que se corresponde con esta configuración:

{
  "selfDiagnostics": {
    "destination": "file+console",
    "level": "INFO",
    "file": {
      "path": "applicationinsights.log",
      "maxSizeMb": 5,
      "maxHistory": 1
    }
  }
}

En el ejemplo de configuración anterior:

  • level puede ser uno de OFF, ERROR, WARN, INFO, DEBUG o TRACE.
  • path incluye una ruta de acceso absoluta o relativa. Las rutas de acceso relativas se resuelven en el directorio donde se encuentra applicationinsights-agent-3.4.4.jar.

A partir de la versión 3.0.2, también puede establecer la opción level de autodiagnóstico mediante la variable de entorno APPLICATIONINSIGHTS_SELF_DIAGNOSTICS_LEVEL. Así, tiene prioridad sobre el nivel especificado de autodiagnóstico en la configuración JSON.

A partir de la versión 3.0.3, también puede establecer la ubicación del archivo de autodiagnóstico mediante la variable de entorno APPLICATIONINSIGHTS_SELF_DIAGNOSTICS_FILE_PATH. Así, tiene prioridad sobre el archivo de autodiagnóstico especificado en la configuración JSON.

Un ejemplo

Este ejemplo muestra el aspecto de un archivo de configuración con varios componentes. Configure opciones específicas en función de sus necesidades.

{
  "connectionString": "...",
  "role": {
    "name": "my cloud role name"
  },
  "sampling": {
    "percentage": 100
  },
  "jmxMetrics": [
  ],
  "customDimensions": {
  },
  "instrumentation": {
    "logging": {
      "level": "INFO"
    },
    "micrometer": {
      "enabled": true
    }
  },
  "proxy": {
  },
  "preview": {
    "processors": [
    ]
  },
  "selfDiagnostics": {
    "destination": "file+console",
    "level": "INFO",
    "file": {
      "path": "applicationinsights.log",
      "maxSizeMb": 5,
      "maxHistory": 1
    }
  }
}