|
1 | 1 | # CHANGELOG |
2 | 2 |
|
| 3 | +# Version 3.4.0-BETA |
| 4 | + |
| 5 | +Migration notes: |
| 6 | + |
| 7 | +* Rate-limited sampling is the new default. If you have not configured a sampling percentage |
| 8 | + and are using the prior default behavior of 100%, you will get the new default which limits |
| 9 | + the total requests captured to (approximately) 5 requests per second. If you wish to continue with |
| 10 | + the previous behavior, you can explicitly specify a sampling percentage of 100, e.g. |
| 11 | + ``` |
| 12 | + { |
| 13 | + "sampling": { |
| 14 | + "percentage": 100 |
| 15 | + } |
| 16 | + } |
| 17 | + ``` |
| 18 | +* Both percentage-based and rate-limited sampling now only apply to requests, and to telemetry that |
| 19 | + is captured in the context of a request. |
| 20 | + If you do want to sample "standalone" telemetry (e.g. startup logs), you can use sampling |
| 21 | + overrides, e.g. |
| 22 | + ``` |
| 23 | + { |
| 24 | + "preview": { |
| 25 | + "sampling": { |
| 26 | + "overrides": [ |
| 27 | + { |
| 28 | + "telemetryType": "dependency", |
| 29 | + "includingStandaloneTelemetry": true, |
| 30 | + "percentage": 10 |
| 31 | + } |
| 32 | + ] |
| 33 | + } |
| 34 | + } |
| 35 | + } |
| 36 | + ``` |
| 37 | + |
| 38 | +Enhancements: |
| 39 | + |
| 40 | +* [Standard metrics](https://docs.microsoft.com/en-us/azure/azure-monitor/app/standard-metrics) |
| 41 | + for HTTP requests and HTTP dependencies are now pre-aggregated inside of the Java agent, and so |
| 42 | + they are no longer affected by sampling |
| 43 | + ([#2439](https://github.com/microsoft/ApplicationInsights-Java/pull/2439)). |
| 44 | +* Rate-limited sampling has been introduced which can be used to tune ingestion costs |
| 45 | + ([#2456](https://github.com/microsoft/ApplicationInsights-Java/pull/2456)), e.g. |
| 46 | + ``` |
| 47 | + { |
| 48 | + "sampling": { |
| 49 | + "limitPerSecond": 5 |
| 50 | + } |
| 51 | + } |
| 52 | + ``` |
| 53 | + Note: the `limitPerSecond` can be a decimal value, including values less than 1. |
| 54 | +* Exceptions are no longer captured directly on dependency records for these reasons: |
| 55 | + * in order to reduce ingestion cost |
| 56 | + * dependency exceptions which are uncaught, bubble up to the request-level where they are |
| 57 | + already captured |
| 58 | + * dependency exceptions which are caught, tend to be logged if they are important, where they |
| 59 | + are also already captured |
| 60 | + ([#2423](https://github.com/microsoft/ApplicationInsights-Java/pull/2423)). |
| 61 | +* New versions of the `applicationinsights-core` and `applicationinsights-web` 2.x SDK artifacts |
| 62 | + have been released, with a reduced API surface area to makes it clear which APIs interop with the |
| 63 | + 3.x Java agent ([#2418](https://github.com/microsoft/ApplicationInsights-Java/pull/2418)). |
| 64 | + These new versions are no-ops when run without the Java agent. To update your dependencies: |
| 65 | + | 2.x dependency | Action | Remarks | |
| 66 | + |----------------|--------|---------| |
| 67 | + | `applicationinsights-core` | Update the version to `3.4.0-BETA` or later | | |
| 68 | + | `applicationinsights-web` | Update the version to `3.4.0-BETA` or later, and remove the Application Insights web filter your `web.xml` file. | | |
| 69 | + | `applicationinsights-web-auto` | Replace with `3.4.0-BETA` or later of `applicationinsights-web` | | |
| 70 | + | `applicationinsights-logging-log4j1_2` | Remove the dependency and remove the Application Insights appender from your log4j configuration. | This is no longer needed since Log4j 1.2 is auto-instrumented in the 3.x Javaagent. | |
| 71 | + | `applicationinsights-logging-log4j2` | Remove the dependency and remove the Application Insights appender from your log4j configuration. | This is no longer needed since Log4j 2 is auto-instrumented in the 3.x Javaagent. | |
| 72 | + | `applicationinsights-logging-log4j1_2` | Remove the dependency and remove the Application Insights appender from your logback configuration. | This is no longer needed since Logback is auto-instrumented in the 3.x Javaagent. | |
| 73 | + | `applicationinsights-spring-boot-starter` | Replace with `3.4.0-BETA` or later of `applicationinsights-web` | The cloud role name will no longer default to `spring.application.name`, see the [3.x configuration docs](./java-standalone-config.md#cloud-role-name) for configuring the cloud role name. | |
| 74 | +* ConnectionString overrides were introduced, and InstrumentationKey overrides were deprecated |
| 75 | + ([#2471](https://github.com/microsoft/ApplicationInsights-Java/pull/2471)): |
| 76 | + ``` |
| 77 | + { |
| 78 | + "preview": { |
| 79 | + "connectionStringOverrides": [ |
| 80 | + { |
| 81 | + "httpPathPrefix": "/myapp1", |
| 82 | + "connectionString": "InstrumentationKey=12345678-0000-0000-0000-0FEEDDADBEEF;IngestionEndpoint=...;..." |
| 83 | + }, |
| 84 | + { |
| 85 | + "httpPathPrefix": "/myapp2", |
| 86 | + "connectionString": "InstrumentationKey=87654321-0000-0000-0000-0FEEDDADBEEF;IngestionEndpoint=...;..." |
| 87 | + } |
| 88 | + ] |
| 89 | + } |
| 90 | + } |
| 91 | + ``` |
| 92 | +* Configuration to disable jdbc masking was introduced |
| 93 | + ([#2453](https://github.com/microsoft/ApplicationInsights-Java/pull/2453)): |
| 94 | + ``` |
| 95 | + { |
| 96 | + "instrumentation": { |
| 97 | + "jdbc": { |
| 98 | + "masking": { |
| 99 | + "enabled": false |
| 100 | + } |
| 101 | + } |
| 102 | + } |
| 103 | + } |
| 104 | + ``` |
| 105 | +* Sampling overrides can (and should) now be targeted to requests, dependencies, traces (logs) |
| 106 | + or exceptions ([#2456](https://github.com/microsoft/ApplicationInsights-Java/pull/2456)), e.g. |
| 107 | + ``` |
| 108 | + { |
| 109 | + "preview": { |
| 110 | + "sampling": { |
| 111 | + "overrides": [ |
| 112 | + { |
| 113 | + "telemetryKind": "dependency", |
| 114 | + ... |
| 115 | + "percentage": 0 |
| 116 | + } |
| 117 | + ] |
| 118 | + } |
| 119 | + } |
| 120 | + } |
| 121 | + ``` |
| 122 | +* Ingestion response codes 502 and 504 now trigger storing telemetry to disk and retrying |
| 123 | + ([#2438](https://github.com/microsoft/ApplicationInsights-Java/pull/2438)). |
| 124 | +* Metric namespaces are now supported via the new 3.x `applicationinsights-core` artifact |
| 125 | + ([#2447](https://github.com/microsoft/ApplicationInsights-Java/pull/2447)). |
| 126 | +* OpenTelemetry baseline has been updated to Java 1.17.0 |
| 127 | + ([#2453](https://github.com/microsoft/ApplicationInsights-Java/pull/2453)). |
| 128 | +* Ingestion sampling warnings are now suppressed since those are expected |
| 129 | + ([#2473](https://github.com/microsoft/ApplicationInsights-Java/pull/2473)). |
| 130 | + |
| 131 | +Bug Fixes: |
| 132 | + |
| 133 | +* Fix `operation_Id` and `operation_parentID` being captured as `00000000000000000000000000000000` |
| 134 | + for "standalone" log records (which occur outside of a request). These fields are now empty for |
| 135 | + "standalone" log records, to reflect that they are not part of an "operation" (i.e. request) |
| 136 | + [#2432](https://github.com/microsoft/ApplicationInsights-Java/pull/2432). |
| 137 | + |
3 | 138 | # Version 3.3.1 GA |
4 | 139 | * Suppress nested client dependencies (regression in 3.3.0) [#2357](https://github.com/microsoft/ApplicationInsights-Java/pull/2357). |
5 | 140 | * Add support for custom instrumentation [#2380](https://github.com/microsoft/ApplicationInsights-Java/pull/2380). |
|
0 commit comments