Configuratieopties - Azure Monitor Application Insights for Java

Waarschuwing

Als u een upgrade van 3.0 Preview wilt uitvoeren

Bekijk alle onderstaande configuratieopties zorgvuldig, omdat de json-structuur volledig is gewijzigd, naast de bestandsnaam zelf, die allemaal kleine letters bevat.

Verbindingsreeks en rolnaam

Verbindingsreeks en rolnaam zijn de meest voorkomende instellingen die nodig zijn om aan de slag te gaan:

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

De connection string is vereist en de rolnaam is belangrijk wanneer u gegevens vanuit verschillende toepassingen naar dezelfde Application Insights verzenden.

Hieronder vindt u meer informatie en aanvullende configuratieopties.

Pad naar configuratiebestand

Standaard verwacht Application Insights Java 3.x dat het configuratiebestand de naam heeft en zich in dezelfde map bevindt applicationinsights.json als applicationinsights-agent-3.2.3.jar .

U kunt uw eigen pad naar het configuratiebestand opgeven met behulp van een van beide

  • APPLICATIONINSIGHTS_CONFIGURATION_FILE omgevingsvariabele, of
  • applicationinsights.configuration.file Java-systeem-eigenschap

Als u een relatief pad opgeeft, wordt dit opgelost ten opzichte van de map waarin applicationinsights-agent-3.2.3.jar zich bevindt.

Verbindingsreeks

Verbindingsreeks is vereist. U vindt uw connection string in uw Application Insights-resource:

Verbindingsreeks Insights toepassingsverbinding

{
  "connectionString": "InstrumentationKey=..."
}

U kunt ook de connection string met behulp van de omgevingsvariabele (die vervolgens voorrang krijgt boven connection string die zijn opgegeven in de APPLICATIONINSIGHTS_CONNECTION_STRING json-configuratie).

Als u de connection string wordt de Java-agent uitgeschakeld.

Naam van cloudrol

De naam van de cloudrol wordt gebruikt om het onderdeel op het toepassingskaart te labelen.

Als u de naam van de cloudrol wilt instellen:

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

Als de naam van de cloudrol niet is ingesteld, wordt de Insights van de toepassingsresource gebruikt om het onderdeel op het toepassingskaart te labelen.

U kunt ook de naam van de cloudrol instellen met behulp van de omgevingsvariabele (die vervolgens voorrang heeft op de naam van de cloudrol die is opgegeven APPLICATIONINSIGHTS_ROLE_NAME in de json-configuratie).

Cloudrol-exemplaar

Het exemplaar van de cloudrol wordt standaard ingesteld op de computernaam.

Als u het exemplaar van de cloudrol wilt instellen op iets anders dan de computernaam:

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

U kunt het exemplaar van de cloudrol ook instellen met behulp van de omgevingsvariabele (die vervolgens voorrang heeft op de cloudrol-instantie die is opgegeven APPLICATIONINSIGHTS_ROLE_INSTANCE in de json-configuratie).

Steekproeven

Steekproeven zijn handig als u de kosten wilt verlagen. Steekproeven worden uitgevoerd als een functie op de bewerkings-id (ook wel traceer-id genoemd), zodat dezelfde bewerkings-id altijd resulteert in dezelfde steekproefbeslissing. Dit zorgt ervoor dat er geen onderdelen van een gedistribueerde transactie worden opgenomen in terwijl andere onderdelen ervan worden bemonsterd.

Als u bijvoorbeeld steekproeven in stelt op 10%, ziet u slechts 10% van uw transacties, maar elk van deze 10% heeft volledige end-to-end transactiegegevens.

Hier ziet u een voorbeeld van het instellen van de steekproef om ongeveer 1/3 van alle transacties vast te leggen. Zorg ervoor dat u de juiste steekproeffrequentie in uw use-case in stelt:

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

U kunt ook het steekproefpercentage instellen met behulp van de omgevingsvariabele (die vervolgens voorrang krijgt op het samplingpercentage dat is opgegeven APPLICATIONINSIGHTS_SAMPLING_PERCENTAGE in de json-configuratie).

Notitie

Kies voor het steekproefpercentage een percentage dat dicht bij 100/N ligt, waarbij N een geheel getal is. Steekproeven bieden momenteel geen ondersteuning voor andere waarden.

Sampling-overschrijvingen (preview)

Deze functie is beschikbaar als preview-versie, vanaf 3.0.3.

Met sampling-overschrijvingen kunt u het standaardsamplingspercentage overschrijven, bijvoorbeeld:

  • Stel het steekproefpercentage in op 0 (of een kleine waarde) voor statuscontroles met ruis.
  • Stel het steekproefpercentage in op 0 (of een kleine waarde) voor aanroepen van ruisafhankelijkheden.
  • Stel het steekproefpercentage in op 100 voor een belangrijk aanvraagtype (bijvoorbeeld ) zelfs als u de standaardsampling hebt geconfigureerd /login op iets lager.

Raadpleeg de documentatie over sampling-overschrijvingen voor meer informatie.

Metrische JMX-gegevens

Als u aanvullende JMX-metrische gegevens wilt verzamelen:

{
  "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"
    }
  ]
}

name is de metrische naam die wordt toegewezen aan deze JMX-metrische gegevens (kan van alles zijn).

objectName is de objectnaam van de JMX MBean die u wilt verzamelen.

attribute is de kenmerknaam in de JMX MBean die u wilt verzamelen.

Numerieke en Booleaanse JMX-metrische waarden worden ondersteund. Booleaanse JMX-metrische gegevens worden voor onwaar en waar 0 1 aan toegevoegd.

Aangepaste dimensies

Als u aangepaste dimensies wilt toevoegen aan al uw telemetrie:

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

${...} kan worden gebruikt om de waarde van de opgegeven omgevingsvariabele te lezen bij het opstarten.

Notitie

Als u vanaf versie 3.0.2 een aangepaste dimensie met de naam toevoegt, wordt de waarde opgeslagen in de kolom in de tabel Application Insights Logs in plaats van als een aangepaste service.version application_Version dimensie.

Overgenomen kenmerk (preview)

Vanaf versie 3.2.0, als u een aangepaste dimensie programmatisch wilt instellen op uw aanvraag-telemetrie en deze wilt laten overnemen door afhankelijkheids-telemetrie die volgt:

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

Telemetrieprocessors (preview)

Hiermee kunt u regels configureren die worden toegepast op aanvraag-, afhankelijkheids- en traceer-telemetrie, bijvoorbeeld:

  • Gevoelige gegevens maskeren
  • Aangepaste dimensies voorwaardelijk toevoegen
  • Werk de spannaam bij, die wordt gebruikt om vergelijkbare telemetrie in de Azure Portal.
  • Specifieke overspankenmerken laten vallen om de opnamekosten te beheersen.

Raadpleeg de documentatie voor telemetrieprocessor voor meer informatie.

Notitie

Zie Sampling-onderdrukkingenals u specifieke (hele) overspanningen wilt neerzetten om de opnamekosten te beheren.

Automatisch verzamelde logboekregistratie

Log4j, Logback en java.util.logging worden automatisch geïns instrumenteerd en logboekregistratie die via deze frameworks voor logboekregistratie wordt uitgevoerd, wordt automatisch verzameld.

Logboekregistratie wordt alleen vastgelegd als deze voor het eerst voldoet aan het niveau dat is geconfigureerd voor het framework voor logboekregistratie en als tweede het niveau bereikt dat is geconfigureerd voor Application Insights.

Als uw framework voor logboekregistratie bijvoorbeeld is geconfigureerd voor logboekregistratie (en hoger) vanuit het pakket en Application Insights is geconfigureerd om vast te leggen (en hoger), worden met Application Insights alleen WARN com.example INFO WARN (en hoger) vanuit pakket vast com.example leggen.

Het standaardniveau dat is geconfigureerd voor Application Insights is INFO . Als u dit niveau wilt wijzigen:

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

U kunt het niveau ook instellen met behulp van de omgevingsvariabele (die vervolgens voorrang heeft op het niveau dat APPLICATIONINSIGHTS_INSTRUMENTATION_LOGGING_LEVEL is opgegeven in de json-configuratie).

Dit zijn de geldige waarden die u in het bestand kunt opgeven en hoe deze overeenkomen met logboekregistratieniveaus level applicationinsights.json in verschillende frameworks voor logboekregistratie:

niveau Log4j Logback JUL
UIT UIT UIT UIT
FATALE FATALE ERROR ERNSTIGE
FOUT (of ERNSTIG) ERROR ERROR ERNSTIGE
WAARSCHUWEN (OF WAARSCHUWING) WAARSCHUWEN WAARSCHUWEN WAARSCHUWING
INFO INFO INFO INFO
CONFIG FOUTOPSPORING FOUTOPSPORING CONFIG
FOUTOPSPORING (of FINE) FOUTOPSPORING FOUTOPSPORING FIJN
FIJNERE FOUTOPSPORING FOUTOPSPORING FIJNERE
TRACE (OF FIJNSTE) TRACE TRACE BESTE
ALL ALL ALL ALL

Notitie

Als een uitzonderingsobject wordt doorgegeven aan de logger, wordt het logboekbericht (en details van uitzonderingsobjecten) weergegeven in de Azure Portal onder de tabel in plaats van in exceptions de traces tabel.

Automatisch verzamelde metrische gegevens van Micrometer (inclusief Spring Boot Actuator)

Als uw toepassing Micrometer gebruikt,worden automatisch metrische gegevens verzameld die naar het globale register van Micrometer worden verzonden.

Als uw toepassing gebruikmaakt van Spring Boot Actuator,worden ook automatisch metrische gegevens verzameld die door Spring Boot Actuator zijn geconfigureerd.

Automatische verzameling van metrische gegevens van Micrometer uitschakelen (inclusief metrische Spring Boot Actuator):

Notitie

Aangepaste metrische gegevens worden afzonderlijk gefactureerd en kunnen extra kosten genereren. Controleer de gedetailleerde prijsinformatie. Als u de metrische gegevens van Micrometer en Spring Actuator wilt uitschakelen, voegt u de onderstaande configuratie toe aan uw configuratiebestand.

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

Specifieke automatisch verzamelde telemetrie onderdrukken

Vanaf versie 3.0.3 kunnen specifieke automatisch verzamelde telemetriegegevens worden onderdrukt met behulp van deze configuratieopties:

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

U kunt deze instrumentaties ook onderdrukken door deze omgevingsvariabelen in te stellen op 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

(deze heeft dan voorrang op ingeschakeld zoals opgegeven in de json-configuratie).

Notitie

Zie Sampling-onderdrukkingenals u op zoek bent naar een fijner beheer, bijvoorbeeld om een aantal redis-aanroepen te onderdrukken, maar niet alle redis-aanroepen.

Preview-instrumentaties

Vanaf versie 3.2.0 kunnen de volgende preview-instrumentaties worden ingeschakeld:

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

Notitie

Akka-instrumentatie is beschikbaar vanaf versie 3.2.2

Hartslag

Standaard verzendt Application Insights Java 3.x elke 15 minuten een heartbeat-metriek. Als u de heartbeat-metrische gegevens gebruikt om waarschuwingen te activeren, kunt u de frequentie van deze heartbeat verhogen:

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

Notitie

U kunt het interval niet langer dan 15 minuten verhogen, omdat de heartbeatgegevens ook worden gebruikt om het gebruik van Insights volgen.

HTTP-proxy

Als uw toepassing zich achter een firewall bevinden en niet rechtstreeks verbinding kan maken met Application Insights (zie IP-adressen die worden gebruikt door Application Insights), kunt u Application Insights Java 3.x configureren voor het gebruik van een HTTP-proxy:

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

Application Insights Java 3.x respecteert ook de globale en systeemeigenschappen als deze https.proxyHost https.proxyPort zijn ingesteld (en indien http.nonProxyHosts nodig).

Interval voor metrische gegevens

Deze functie is beschikbaar als preview-versie.

Standaard worden metrische gegevens elke 60 seconden vastgelegd.

Vanaf versie 3.0.3 kunt u dit interval wijzigen:

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

De instelling is van toepassing op al deze metrische gegevens:

  • Standaardprestatiemeters, zoals CPU en geheugen
  • Standaard aangepaste metrische gegevens, bijvoorbeeld timing van garbageverzameling
  • Geconfigureerde metrische JMX-gegevens (zie hierboven)
  • Metrische gegevens van micrometer (zie hierboven)

Verificatie (preview)

Notitie

Verificatiefunctie is beschikbaar vanaf versie 3.2.0-BETA

Hiermee kunt u de agent configureren voor het genereren van tokenreferenties die vereist zijn voor Azure Active Directory verificatie. Raadpleeg de documentatie over verificatie voor meer informatie.

Instrumentatiesleutels overschrijven (preview)

Deze functie is beschikbaar als preview-versie vanaf 3.2.3.

Met overschrijvingen van instrumentatiesleutels kunt u de standaard instrumentatiesleuteloverschrijven, bijvoorbeeld:

  • Stel één instrumentatiesleutel in voor één http-pad voorvoegsel /myapp1 .
  • Stel een andere instrumentatiesleutel in voor een ander http-pad voorvoegsel /myapp2/ .
{
  "preview": {
    "instrumentationKeyOverrides": [
      {
        "httpPathPrefix": "/myapp1",
        "instrumentationKey": "12345678-0000-0000-0000-0FEEDDADBEEF"
      },
      {
        "httpPathPrefix": "/myapp2",
        "instrumentationKey": "87654321-0000-0000-0000-0FEEDDADBEEF"
      }
    ]
  }
}

Zelfdiagnose

'Zelfdiagnose' verwijst naar interne logboekregistratie vanuit Application Insights Java 3.x.

Deze functionaliteit kan handig zijn voor het herkennen en diagnosticeren van problemen met Application Insights zelf.

Standaard worden met Application Insights Java 3.x-logboeken op niveau ingesteld op zowel het bestand als de console, overeenkomstig INFO applicationinsights.log deze configuratie:

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

destination kan een van of file console file+console zijn.

level kan een van OFF , , , , , of ERROR WARN INFO DEBUG TRACE zijn.

path kan een absoluut of relatief pad zijn. Relatieve paden worden opgelost op basis van de map waarin applicationinsights-agent-3.2.3.jar zich bevindt.

maxSizeMb is de maximale grootte van het logboekbestand voordat het wordt overgeslagen.

maxHistory is het aantal gerrolde logboekbestanden dat wordt bewaard (naast het huidige logboekbestand).

Vanaf versie 3.0.2 kunt u ook de zelfdiagnostiek instellen met behulp van de omgevingsvariabele (die vervolgens voorrang krijgt boven het zelfdiagnoseniveau dat is opgegeven in de level APPLICATIONINSIGHTS_SELF_DIAGNOSTICS_LEVEL json-configuratie).

Een voorbeeld

Dit is slechts een voorbeeld om te laten zien hoe een configuratiebestand eruitziet met meerdere onderdelen. Configureer specifieke opties op basis van uw behoeften.

{
  "connectionString": "InstrumentationKey=...",
  "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
    }
  }
}