metricsext2 (2.2023.1027.1417-08a588) unstable; urgency=low

  * Add system metrics scraper input for Overlake.
  * Add OpenTelemetry over user events input for Overlake.
  * Add `split_name` transformation operation to set metric name after splitting the original name by dot `.` and then selecting a range by using split count and take count variables.
  * Disable logging certificate not found error message when tokens are used.
  * Enable filtering-out undefined sampling types.
  * Change MD5 with SHA-256 in certificate validation to make it FIPs-compliant.
  * Fix the bug causing wrong concatenation of query parts of the metric publication endpoint URL ([bug #25565371](https://msazure.visualstudio.com/One/_workitems/edit/25565371)).
  * Add new ME command to update the value of `MaxPacketsToCaptureLocally` config value on-the-fly.
  * Add mTLS support for OTLP over gRPC communication.
  * Add `Test` metric source to simulate receiving metrics.
  * Add Fameta-Counter through Vcpkg.
  * Remove BoostBeast that was being used to publish to Health Store in Overlake environment. Replaced by libcurl.
  * Remove execution priority levels implementation.

 -- Geneva Metrics Agent & SDKs team <metricsagentsdksteam2@microsoft.com>  Fri, 27 Oct 2023 00:00:00 -0000

metricsext2 (2.2023.928.2134-0de476) unstable; urgency=low

  * Add systemd timings system metrics scraper.
  * Change behavior to drop exemplar data if its time is one minute older than datapoint time.
  * Add support for non-string otel dimension values.
  * Add a new class to encapsulate all the configuration loading for an account so it can be isolated as a single object shared by all the premium metrics accounts.
  * Remove thread names functionality, as it created conflicts with older Windows builds (2008, 2012, etc) for ME ran in 3P mode.
  * Add backward-cpp as a vcpkg package.
  * Add LinuxTracepoints through Vcpkg.
  * Add internal metric to report GIG QoS publication failures.
  * Fix MonMon metrics redirection to GIG QoS pipeline. Fixes the type of the aggregated event for redirected MonMon metrics.
  * Add Execution Priority Level (EPL) to manage priority of MetricsExtension instances. Note this changes the default behavior of MetricsExtension at startup. MetricsExtension can terminate other MetricsExtension instances depending on the priority level and version of other instances. Use the command line argument `-ExecutionPriorityLevel` or the config override option `executionPriorityLevel` to set the priority level of MetricsExtension.
  * Add check dimension limits from preRawEvent to dogstatsdprocessor.
  * Add a check that dimension name, value and number of dimensions don't exceed their limits in the PreRawEvent.

 -- Geneva Metrics Agent & SDKs team <metricsagentsdksteam2@microsoft.com>  Thu, 28 Sep 2023 00:00:00 -0000

metricsext2 (2.2023.907.900-f18520) unstable; urgency=low

  * Add otlp_user_events metrics source.
  * Change the situations when we log a warning about disabling GIG pipeline as main pipeline to only those where the pipeline was active.
  * Fix the preaggregate estimation that was failing when some of the dimension names in the preagg started with '_' character and others with a letter ([bug #24820345](https://msazure.visualstudio.com/One/_workitems/edit/24820345)).
  * Add concurrentqueue as a Vcpkg package.
  * Add jwt-cpp through Vcpkg.
  * Add lz4, rapidjson and tsl-ordered-map as vcpkg packages.
  * Upgrade XPlatLib for windows to 1.2023831.82823 that does not export symbols.
  * Fix checking namespace prefix of invalid events for MonMon metrics redirection ([bug #25033897](https://msazure.visualstudio.com/DefaultCollection/One/_workitems/edit/25033897/)).
  * Add GIG QoS endpoint configuration loader.

 -- Geneva Metrics Agent & SDKs team <metricsagentsdksteam2@microsoft.com>  Thu, 07 Sep 2023 00:00:00 -0000

metricsext2 (2.2023.818.2023-3d8a82) unstable; urgency=low

  * Upgrade version of OTLP to 0.14.0.
  * Change OTLP config to give user the control on the exemplar data ingestion in prom metric processor.
  * Remove redundant payload length field from the start of the OTLP message in otlp_etw path and switch the event id for OTLP over ETW from 80 to 81.
  * Change the serializer object to be shared among all the publications.
  * Add a warning about az-int stamp deprecation in container when used as global stamp during container start.
  * Add thread names for Windows and Linux binaries for easier debugging.
  * Upgrade DsmsCredentialsManagement libraries to 4.5.2322142 to fix security issues.
  * Fix bug publication of double valued MonMon metrics redirected to GIG QoS endpoints ([bug #24758397](https://msazure.visualstudio.com/One/_workitems/edit/24758397)).
  * Add a check that dimension name, value and number of dimensions don't exceed their limits to InfluxDB processor.
  * Add SPGO support to MetricsExtension build to enable future optimizations in the generated executable.

 -- Geneva Metrics Agent & SDKs team <metricsagentsdksteam2@microsoft.com>  Fri, 18 Aug 2023 00:00:00 -0000

metricsext2 (2.2023.721.1630-e50918) unstable; urgency=low

  * Fix [bug #24505331](https://msazure.visualstudio.com/One/_workitems/edit/24505331) where sending an shorter than expected payload over statsd led to accessing memory outside of buffer boundaries and might have led to a crash.
  * Fix [bug #24516202](https://msazure.visualstudio.com/One/_workitems/edit/24516202) in the certificate store for Windows where for APPKI certificates refreshing ME could enter into an infinite loop.
  * Fix [bug #19527425](https://msazure.visualstudio.com/One/_workitems/edit/19527425) to avoid ME logging the GIG token as part of the configuration.
  * Add LogControl1 for Overlake, Ubuntu and Debian systems.
  * Add documentation for config override parameters.
  * Fix broken configoverride parameter names "watchdogDelayInSec" and "maxAcceptedMetricFutureAgeInSec" ([bug #24412384](https://msazure.visualstudio.com/One/_workitems/edit/24412384/)).

 -- Geneva Metrics Agent & SDKs team <metricsagentsdksteam2@microsoft.com>  Fri, 21 Jul 2023 00:00:00 -0000

metricsext2 (2.2023.707.1428-bbd051) unstable; urgency=low

  * Fix string length calculation for error messages.
  * Fix out of boundary buffer read for corrupted metrics.
  * Add Prometheus normalization support which optionally enables conversion from OpenTelemetry metrics to Prometheus-compliant metrics.
  * Upgrade Windows certificate store manager to share certificate handles between HTTP clients.
  * Fix the refreshing of forking state for GIG pipeline when the endpoint configuration is parsed again.
  * Remove Troubleshooting directory from ME repository.

 -- Geneva Metrics Agent & SDKs team <metricsagentsdksteam2@microsoft.com>  Fri, 07 Jul 2023 00:00:00 -0000

metricsext2 (2.2023.609.2051-821f47) unstable; urgency=low

  * Change log level of message for investigations purposes on issue found in overlake.
  * Add milliseconds ingestion support for prom metrics. It's false by default and can be enabled with `enableMillisecondSupport` config overrides field.
  * Add exemplars support for Prometheus metrics.
  * Fix issue with missing internal metrics for machine account when no real metric was ingested for machine account and metric configuration expired.
  * Add performance improvements to the `set_dimension` transformation rule.
  * Add performance improvements to the `set_location_id` transformation rule.
  * Fix CodeQL code quality warnings.
  * Add implementation for getting the life time left of authentication when using token.
  * Fix bug in MdmDataCollection Windows script when table2csv.exe contains whitespaces in the path ([bug #22983093](https://msazure.visualstudio.com/One/_workitems/edit/22983093/)).
  * Fix changelog.py build command on Windows, which fails due to platform-specific use of datetime format.
  * Change internal metrics v2 schema to remove MetricsDroppedCount and MetricsPublishedCount, and add new internal metrics with unit types MetricEventsPublished, MetricAggregatesPublished, and others.
  * Fix config override name for enabling GIG QoS target.
  * Add GIG QoS machine/platform publication target (name: machinegigqos).

 -- Geneva Metrics Agent & SDKs team <metricsagentsdksteam2@microsoft.com>  Fri, 09 Jun 2023 00:00:00 -0000

metricsext2 (2.2023.513.10-4c35af) unstable; urgency=low

  * Remove `-Mdsd` command line argument which was deprecated previously. Use [Publishing metrics as logs in Linux through mdsd TCP Sockets](https://eng.ms/docs/products/geneva/metrics/metricsagentsdk/metricsaslogs) as a reference for publishing metrics as logs in Linux.
  * Fix [security bug #22030486](https://msazure.visualstudio.com/DefaultCollection/One/_workitems/edit/22030486) related to APSDK library by upgrading APSDK and removal of insecure VE authZ checks. This fixes issue for both windows/amd64 (upgrading APSDK from `21.11.13005` to `23.2.12007`), and windows/arm64 (upgrading APSDK from `21.11.15006` to `23.5.12002`).
  * Fix bug in populating resource domain for UsSec cloud environment.

 -- Geneva Metrics Agent & SDKs team <metricsagentsdksteam2@microsoft.com>  Sat, 13 May 2023 00:00:00 -0000

metricsext2 (2.2023.505.1124-45da18) unstable; urgency=low

  * Change internal metrics to reduce volume by not emitting "0" or other negligible values.
  * Add GIG QoS publication target for internal metrics, controlled by `EnableInternalMetricsGigQosTarget` configOverride parameter (default false).
  * Add discovery of GIG QoS publication endpoint via MDM API.
  * Add external MonMon QoS events redirection to GIG QoS pipeline.
  * Add new SLI internal metrics under MeErrorsCount with Type dimension `PublicationFailed` and Reason dimension values of `NoValidCertificate` or `UnknownHttpException`.
  * Add a distroless container image to the isolated ACR as part of our release process.
  * For Overlake:
    * Add necessary version info into extension-release file.
    * Add limitation for number of Malloc arenas to improve memory utilization.
  * Fix bug in DogstatsdProcessor causing drops of min/max and percentiles in sample-rate applied metrics ([bug #20975530](https://msazure.visualstudio.com/One/_workitems/edit/20975530)).
  * Add additional checks to control emission of internal metrics v2 and fix emissions when account configuration is not available.
  * Upgrade transformation rules to support metric rewriting.
  * Change HEAD of submodule GenevaMonAgent-Shared-CrossPlat from 5311c3ba41 to 5a8e2f95f1, retrieve Imds metadata using the library.
  * For Overlake:
  * Change app domain of `MetricsIngestedCount` with dimension {`protocol=any`} internal metric to Sli and move increment after applying the drop policy of out-dated metric configuration.
  * Add a new changelog entry manager to add, check and build changelog entries.
  * Add '*' to the banned monitoring account list.
  * Add CloseHandle for Job Object handles ([bug #18537384](https://msazure.visualstudio.com/One/_workitems/edit/18537384)).

 -- Geneva Metrics Agent & SDKs team <metricsagentsdksteam2@microsoft.com>  Fri, 05 May 2023 00:00:00 -0000

metricsext2 (2.2023.331.1521-399d45) unstable; urgency=low

  * Fix internal metrics dimensions not published to GIG QoS pipeline ([bug #17623437](https://msazure.visualstudio.com/One/_workitems/edit/17623437)).
  * Disable brute force searches for CppRestUtil.exe and table2csv.exe in MdmDataCollection Windows.
  * Add GigGenevaMetricsEnvironment config override option to set environment value for GIG publications.
  * Change client aggregated metrics manifest to include exemplar data in the outgoing events.
  * Add JSON schema validation for [OtlpSourceConfig](https://eng.ms/docs/products/geneva/collect/metrics/mecollectotlp#configure-metricsextension) — this makes authoring and error checking in JSON configuration simpler. JSON schemas are available as part of MetricsExtension distribution (in `/usr/share/metricsext2/JsonSchema` on Linux and in `JsonSchema` on Windows), and in future they'll be also published separately.
  * Fix CppRestUtil for Windows that was crashing due to not including GRPC for compilation, which generated class definitions not matching the ones from ME library.
  * Change interval of client aggregated metric publication to MDSD endpoint on Linux to reduce the delay.
  * Add OutputDirectory command line parameter to MdmDataCollection Windows.
  * Change reserved OTLP account/namespace dimension names as `_microsoft_metrics_account` and `_microsoft_metrics_namespace`.
  * Add the possibilty to use a command line parameter to override the standard part of the location id emitted from ME.

 -- Geneva Metrics Agent & SDKs team <metricsagentsdksteam2@microsoft.com>  Fri, 31 Mar 2023 00:00:00 -0000

metricsext2 (2.2023.316.006-5d91fa) unstable; urgency=low

  * Add flags for skipping the collection of tsf logs and certificates in MdmDataCollection, also replace environment variables by command line parameters.
  * Fix error in detection of file version for MdmDataCollection Windows ([bug #17337070](https://msazure.visualstudio.com/One/_workitems/edit/17337070)).
  * Add information about the result of the previous metrics publication to ME-Request-Info header in the next publication.
  * Add `internalMetric2ProductionLevel` config override option to separately set the production level for ME internal metrics v2.
  * Add dimension count, name and value length validations to Statsd processor ([bug #16360593](https://msazure.visualstudio.com/One/_workitems/edit/16360593/)).
  * Add ServiceConfigLoader to read ServiceConfig files and use it for loading CommandLineArguments.
  * Fix bug overriding metric type with wrong value during parsing Ifx exemplars which causes sending wrong metric value ([bug #17487720](https://msazure.visualstudio.com/One/_workitems/edit/17487720/)).
  * Change the rule to add the location id as dimension to perform extra checks and treat `ext` key in a special way.
  * Change Ifx processor validation check to allow receiving Ifx exemplars for size greater than 512 bytes.

 -- Geneva Metrics Agent & SDKs team <metricsagentsdksteam2@microsoft.com>  Thu, 16 Mar 2023 00:00:00 -0000

metricsext2 (2.2023.224.2214-9b6a0c) unstable; urgency=low

  * Change and update memory limits in Backpressure for autodiscovery after ME has started.
  * Fix the documentation generated by ME command line as it was partially outdated.
  * Add missing parameters to Overlake start script ([bug #17171884](https://msazure.visualstudio.com/One/_workitems/edit/17171884)).
  * Add metrics configuration and command line parameters to initialize system metric scraping for Linux/Overlake.
  * Add `microsoft_metrics_account` and `microsoft_metrics_namespace` as dimensions which will be recognized specially to specify Geneva Metrics account and namespace in OTLP metric traffic.
  * Fix machine level GIG publication target (`machinegig`).
  * Fix potential memory leak occuring while decoding TLV formatted Ifx metric data ([bug #17183414](https://msazure.visualstudio.com/One/_workitems/edit/17183414)).
  * Add `set_location_id` transformation rule to allow adding a location id customizable through environment variables. **Breaking change**: Location id scheme changed from `ms-azloc` to `ms-loc`.
  * Fix bug that causes OTLP metric drops with invalid time reason ([bug #17262261](https://msazure.visualstudio.com/One/_workitems/edit/17262261)).
  * Fix wrongly encoded `number of exemplars` field, change it from `Base128-encoded unsigned int` to `Base128-encoded int` ([bug #17282007](https://msazure.visualstudio.com/One/_workitems/edit/17282007)).

 -- Geneva Metrics Agent & SDKs team <metricsagentsdksteam2@microsoft.com>  Fri, 24 Feb 2023 00:00:00 -0000

metricsext2 (2.2023.210.1608-70acef) unstable; urgency=low

  * Change internal metrics severity levels to match with MetricsExtension OOBE.
  * Fix publishing garbage internal metric values when the owner objects are deallocated ([bug #16892675](https://msazure.visualstudio.com/One/_workitems/edit/16892675/)).
  * Fix CppRestUtil for Linux that was crashing due to not including GRPC for compilation, which generated class definitions not matching the ones from ME library.
  * Add a new ConfigOverride parameter for improving the autodiscovery of memory limits.
  * Add networking failure reasons for metrics dropped due to old age if it is related to on-going networking issues in MetricsDroppedCount.
  * Add `PublicationFailedCount` internal metric to report publication errors due to networking failures.
  * Add ConfigOverride parameter documentation and a new command line argument `-ConfigOverridesHelp`.
  * Add environment variable `USE_DSMS_CERT` as alternative to using command line argument `-UseDsmsCertificate`.
  * Add platform internal metrics to GIG publication target (`machinegig`) and update Telemetry Events schema.
  * For Overlake:
    * Change limit on aggregation queue size. It was decreased to 50k to accommodate situation when stamp is not responsive.
    * Add interim GIG QoS endpoint discovery method for internal metrics MonMon publications.
  * Change the policy of internal metrics v2 to not to emit 0 values unless explicitly called (to reduce the number of time series for Internal Metrics v2).
  * Remove publication to GIG when GIG auth token is expired.
  * Fix certificates remaining as invalid even when the cert is still in the machine and not expired ([bug #16863319](https://msazure.visualstudio.com/One/_workitems/edit/16863319)).
  * Add SLI app domain for internal metrics v2.
  * Add support for ingesting OTLP metrics over HTTP.
  * Add support for ingesting OTLP metrics over ETW.
  * Fix bug that allows old metrics to get aggregated and then dropped late ([bug #16130263](https://msazure.visualstudio.com/One/_workitems/edit/16130263)).
  * Change default internal metrics v2 configuration to emit SLI app domain internal metrics to GIG QoS target.
  * Fix internal metrics for published metadata count ([bug #16396714](https://msazure.visualstudio.com/One/_workitems/edit/16396714)).

 -- Geneva Metrics Agent & SDKs team <metricsagentsdksteam2@microsoft.com>  Fri, 10 Feb 2023 00:00:00 -0000

metricsext2 (2.2023.105.1409-313684) unstable; urgency=low

  * Fix enumerating more than 64 ETW trace sessions ([bug #16617907](https://msazure.visualstudio.com/One/_workitems/edit/16617907)).
  * Add exemplars support for OTEL metrics.
  * Add exemplars support for IFx metrics.
  * Change IFx processor to support new TLV style IFxMetrics format.
  * Fix stuck situation when searching files in MdmDataCollection Windows ([bug #16374304](https://msazure.visualstudio.com/One/_workitems/edit/16374304/)).
  * Remove `SumOfSquareDiffFromMean` sampling type and all its references from the codebase.
  * Add infrastructure for system metric scraping for Linux/Overlake.
  * Fix touch file logic for Linux, that didn't work if file was owned by other user ([bug #15721848](https://msazure.visualstudio.com/One/_workitems/edit/15721848/)).
  * Add new mandatory metadata section `[ServiceMetadata]` for GenevaMetricsExtension on Windows and Overlake.

 -- Geneva Metrics Agent & SDKs team <metricsagentsdksteam2@microsoft.com>  Fri, 06 Jan 2023 00:00:00 -0000

metricsext2 (2.2022.1201.1140-c7f6c9) unstable; urgency=low

  * Change default value of `enableInternalMetrics2` configOverride to true (enable Internal Metrics v2 by default).
  * Fix sudden increase in memory and OOM kill during graceful shutdown if new internal metrics v2 is enabled ([bug #15933257](https://msazure.visualstudio.com/One/_workitems/edit/15933257)).
  * Add mechanism for excluding environment variables that can contain sensitive data in MdmDataCollection output.
  * Remove metrics sampling logic, configuration and internal metric related to the sampled metrics.
  * Fix unbounded memory growth while constructing PreRawEvent event with large dimension count ([bug #16430624](https://msazure.visualstudio.com/One/_workitems/edit/16430624)).
  * Change MdmDataCollection Windows:
    * Change error handling.
    * Add environment variable for setting CppRestUtil.exe and table2csv.exe paths.
    * Fix the collection of file versions ([bug #16008227](https://msazure.visualstudio.com/One/_workitems/edit/16008227/)).
  * Add separate configuration load latency metrics to ME Internal Metrics v2 schema.
  * Fix the memory usage calculation of the aggregated metric keys after dimension trimming ([bug #14754314](https://msazure.visualstudio.com/One/_workitems/edit/14754314)).
  * Change GIG in main pipeline behavior to revert to direct publication to FE when the packet size allowed is over 4MB.
  * Add 10 ms main loop interruptions during shutdown sequence to allow CPU to switch context from the main thread.
  * Add `set_metricname` transformation operation to support overwriting on metric name using transformation rules.
  * Add metrics dropped counter internal metrics with 'ParsingError' and 'EmptyMonitoringAccount' reasons in IfxProcessor.
  * Add setting to MetricsExtension configuration to use minute granularity for the cache expiration in ARM id enrichment negative cache.
  * For Overlake:
    * Change Health Store publication to be asynchronous to not slow down the main loop.
  * Upgrade OpenSSL and gRPC packages.
  * Add metrics-as-logs support for Mariner 1.0 and Mariner 2.0.
  * MdmDataCollection Linux:
    * Add MdmDataCollection Linux script.
    * Remove open source binaries distributed with script (nping and 7z), replaced with widely available preinstalled equivalents (wget, tar).

 -- Geneva Metrics Agent & SDKs team <metricsagentsdksteam2@microsoft.com>  Fri, 02 Dec 2022 00:00:00 -0000

metricsext2 (2.2022.1026.1505-458956) unstable; urgency=low

  * Fix internal metrics (MetricsPublishedCount, MetricsDroppedCount, and MeErrorsCount) emitted with different number of dimensions ([bug #15932311](https://msazure.visualstudio.com/One/_workitems/edit/15932311/)).
  * For validation rules of OTLP metrics:
    * Change rules to drop cumulative histogram metrics.
    * Change rules to drop non-monotonic delta sum metrics.
    * Change rules to allow non-monotonic cumulative sum metrics.
  * Change drop reason `CumulativeTemporalityNotSupported` to `WrongAggregationTemporality`.

 -- Geneva Metrics Agent & SDKs team <metricsagentsdksteam2@microsoft.com>  Wed, 26 Oct 2022 00:00:00 -0000

metricsext2 (2.2022.1021.1309-7208c2) unstable; urgency=low

  * Fix ME crashes while processing OTLP Histogram with zero bucket ([bug #15762948](https://msazure.visualstudio.com/One/_workitems/edit/15762948)).
  * Add MdmDataCollection for Windows from Metrics and Health repository, translate it from cmd to Powershell and add it to the NuGet package of MetricsExtension.
  * Upgrade GenevaMonAgent-Shared-CrossPlat library to the latest commit (5311c3ba41ae0cd735b366887969d215def3ee0a Fri Oct 7 19:59:37 2022 +0000).
  * Add XPlatLib to Windows build.
  * Add logic to drop OTLP metrics with cumulative aggregation temporality. Dropped metrics are reported in `DroppedRawMetricEventsCountMetric` internal metric with `CumulativeTemporalityNotSupported` reason.
  * Add calls to malloc_trim() to release memory before applying backpressure on Linux/Overlake.

 -- Geneva Metrics Agent & SDKs team <metricsagentsdksteam2@microsoft.com>  Fri, 21 Oct 2022 00:00:00 -0000

metricsext2 (2.2022.930.1909-c38ba0) unstable; urgency=low

  * Add preaggregate cost estimation feature.
  * Change default value for `gigMainPipelineMode` from `Disabled` to `Enabled`.
  * Add '<<Metric Account Name>>' to banned monitoring accounts.
  * Add support to `set_dimension_value` transformation rule to add the LocationId through `standard_location_id` function.
  * Add logic to drop internal metrics v2 with no preaggs defined.
  * Add airgapped clouds (USSec/USNat) support to Overlake GenevaMetricsExtension.
  * Add Geneva Metrics ppe and int global endpoints to the ones accepted by the start script in the MDM containers published to `linuxgeneva` and isolated ACRs.
  * Change msgpack event/source tag for aggregated metrics publication through Mdsd on Linux, from 'syslog' to 'metricsextensionlog' and make it configurable through `mdsdSourceTag` ME config override.
  * Fix data race condition in endpoint resolution ([bug #15640326](https://msazure.visualstudio.com/One/_workitems/edit/15640326)).
  * For Overlake:
    * Change the size limitation for the string interner cache from 50MB to 10MB, which should still be more than enough.
    * Remove VfpMdm account from the list of high priority accounts.
  * For `MdsdHost` startup argument (and `MDSD_HOST` environment variable):
    * Change IP address argument to a string argument, which now gets resolved to an actual IP address.
    * Add resolution during ME startup or whenever TCP connection to MDSD is broken due to any reason (e.g., mdsd container getting restarted, mdsd dropping the connection, network connectivity problems).

 -- Geneva Metrics Agent & SDKs team <metricsagentsdksteam2@microsoft.com>  Fri, 30 Sep 2022 00:00:00 -0000

metricsext2 (2.2022.830.1813-40214a) unstable; urgency=low

  * Upgrade ME Docker build for isolated ACR to be based on Mariner 2.0 (instead of Ubuntu 20.04).
  * Fix ARM id enrichment calls adding directly a header for compression that triggers CppRestSdk bug ([bug #15375844](https://msazure.visualstudio.com/One/_workitems/edit/15375844)).
  * Revert dropping internal metrics v2 without a metric configuration.
  * Add MDSD_HOST and MDSD_PORT environment variables as backup to -MdsdHost and -MdsdPort startup arguments, which enable publishing metrics as logs to Mdsd in Linux.
  * Change internal metric name from `MetricsPipelineLatencyInMs` for event read latency to `MetricsRawEventReadLatencyInMs`, update attributes.
  * Add new internal metric `AuthLifetimeLeftMin`, which shows remaining lifetime for the current authentication context (certificate or token). This metric can be used for alerting and diagnosing certificate rotation issues early.
  * Add the possibility to specify th transformation rules folder through the environment variable MDM_TRANSFORM_RULES_DIR when starting ME, same way as it was already possible for the docker container.
  * Fix infinite loop of draining aggregated queue for front end during account throttling ([bug #15384146](https://msazure.visualstudio.com/One/_workitems/edit/15384146)).

 -- Geneva Metrics Agent & SDKs team <metricsagentsdksteam2@microsoft.com>  Tue, 30 Aug 2022 00:00:00 -0000

metricsext2 (2.2022.811.1333-d2565c) unstable; urgency=low

  * Add new internal metric `MetricsExtensionEventSignals` which signals MetricsExtension startup and shutdown events.
  * Fix publishing to GIG MonMon pipeline in case monitoring account has URL invalid characters ([bug #15153488](https://msazure.visualstudio.com/One/_workitems/edit/15153488)).
  * Fix memory leaks in Certificates initialization ([bug #12885620](https://msazure.visualstudio.com/One/_workitems/edit/12885620/)).
  * Fix MetricsExtension OOMs on Overlake by limiting raw events queue size ([bug #15083073](https://msazure.visualstudio.com/One/_workitems/edit/15083073/)).
  * Fix creating source ingestion related internal metrics error due to initialization order ([bug #15025074](https://msazure.visualstudio.com/One/_workitems/edit/15025074/)).
  * Fix compilation error with VS2022 on helper member initialization.
  * Enable Interprocedural Optimization on Linux.
  * Add memory backpressure for Overlake.
  * Fix a possible information leakage from uninitialized padding bytes ([bug #14714909](https://msazure.visualstudio.com/One/_workitems/edit/14714909/), [bug #14714910](https://msazure.visualstudio.com/One/_workitems/edit/14714910/)).
  * Fix handling shutdown signals during initialization not waiting for seed URL detection timeouts.
  * Fix overly noisy log line "Picked account for fetching query" appearing very often on debug log level ([bug #15045691](https://msazure.visualstudio.com/One/_workitems/edit/15045691/)).
  * Change C++ standard from c++14 to c++17.
  * Add logic to drop internal metrics v2 without a metric configuration.
  * Fix the bug resulting publication of invalid double-valued raw-type metrics ([bug #15004447](https://msazure.visualstudio.com/One/_workitems/edit/15004447)).

 -- Geneva Metrics Agent & SDKs team <metricsagentsdksteam2@microsoft.com>  Thu, 11 Aug 2022 00:00:00 -0000

metricsext2 (2.2022.708.1732-deb677) unstable; urgency=low

  * Change MDM proxy resolution logic to use DNS resolution mode from configuration.
  * Fix a potential race condition in creating internal metrics ([bug #10936840](https://msazure.visualstudio.com/One/_workitems/edit/10936840/)).
  * Add new cloud name "arcautonomous" for Arc Autonomous. When specified, the resource endpoint for MSI token will be fetched from an environment variable named "customResourceEndpoint" directly.
  * Add to ME the ability to find the Location id for both AP/PF machines and Azure nodes.
  * Change AggregatedMetricsSerializer class to reduce the memory footprint by replacing std::unordered_map with tsl::ordered_set.
  * Change logic to skip the aggregation stage for raw-type metrics.
  * Remove support for Debian 9 and Ubuntu 16.04 (as per prior [Cu deprecation notice](https://eng.ms/docs/products/geneva/support/deprecations/copper#deprecating-metricsextension-support-for-debian-9-and-ubuntu-1604) due to security concerns).
  * Add a check to detect if the provider is enabled before trying to publish client aggregated metrics for optimization.
  * Change MetricAggregationData, MetricAggregationKey, SingleValueRawMdmEvent and ExternallyAggregatedRawMdmEvent classes to use Boost:Pool for dynamic memory allocation.
  * Add account ingestion limit configuration to cap the number of ingested events per account.

 -- Geneva Metrics Agent & SDKs team <metricsagentsdksteam2@microsoft.com>  Fri, 08 Jul 2022 00:00:00 -0000

metricsext2 (2.2022.624.1548-2cf19b) unstable; urgency=low

  * Fix bug in Transformation Rules that could cause ME to crash while shutting down ([bug #14815935](https://msazure.visualstudio.com/One/_workitems/edit/14815935)).

 -- Geneva Metrics Agent & SDKs team <metricsagentsdksteam2@microsoft.com>  Fri, 24 Jun 2022 00:00:00 -0000

metricsext2 (2.2022.622.1902-f858d9) unstable; urgency=low

  * Fix packets for GIG as main pipeline not being marked as "forked" when the traffic is also sent directly to Geneva Metrics FrontEnd.
  * Fix dropped integer-type OTLP Sum/Gauge metric support ([bug #14705512](https://msazure.visualstudio.com/One/_workitems/edit/14705512)).
  * Fix problem with `vcruntime140_1.dll` dependency was missing from Windows package ([bug #14723888](https://msazure.visualstudio.com/One/_workitems/edit/14723888)).
  * For misleading log lines in prom P3 scenario:
    * Remove Frontend detection errors on initialization in local control channel mode.
    * Remove Bootstrapping http client failure messages.
    * Remove Certificate related error/warning messages.
  * Fix dropped integer-type OTLP Sum/Gauge metric support ([bug #14705512](https://msazure.visualstudio.com/One/_workitems/edit/14705512)).
  * Add `-OtlpGrpcPort` and `-OtlpGrpcHost` startup arguments to allow setting OTLP gRPC host and port.
  * Add separate config parameter `otlp_grpc_prom` to configure receiving of prometheus metrics in OTLP over gRPC.

 -- Geneva Metrics Agent & SDKs team <metricsagentsdksteam2@microsoft.com>  Thu, 23 Jun 2022 00:00:00 -0000

metricsext2 (2.2022.610.1050-e08c5e) unstable; urgency=low

  * Fix disabling publications for machine accounts if no metrics were ingested ([bug #14528761](https://msazure.visualstudio.com/One/_workitems/edit/14528761)).
  * Fix CentralBond packets serialization for GIG MonMon QoS pipelines (both internal metrics and logs) ([bug #14549498](https://msazure.visualstudio.com/One/_workitems/edit/14549498)).
  * For undefined behavior ([bug #12885623](https://msazure.visualstudio.com/One/_workitems/edit/12885623)):
    * Fix Ubuntu 16, Ubuntu 18 and Debian 9 versions: logging the value of an invalid event using hex notation.
    * Fix other versions: sanitizing the JSON string returned from HTTP calls, the ME could have tried to use a dangling reference.
  * Add an environment variable option to read config override settings.
  * Add mariner 2.0 ME builds to OB pipeline.
  * For ME crash with several accounts publishing in parallel to ETW ([bug #13205341](https://msazure.visualstudio.com/One/_workitems/edit/13205341)):
    * Fix the race condition in Mdsd/ETWPublisher classes that occurred during dimension serialization by moving the stream variables from class to function definition.
  * Fix ME to drop metrics with a metric name longer than 512 characters.
  * Add default ports for the OTLP listener; 4316 for Prometheus, 4317 for MDM aggregated metrics.
  * Fix flaky tests in TransformRuleSetManagerTests.cpp ([bug #14237611](https://msazure.visualstudio.com/One/_workitems/edit/14237611)).
  * Fix bug in User Managed Identities preventing publication if the account has a GIG endpoint defined ([bug #14671185](https://msazure.visualstudio.com/One/_workitems/edit/14671185)).
  * Add handling of new "gigInMainPipeline" and "forkGigInMainPipeline" configuration parameters for GIG Ingestion flow of 1st party metrics.
  * Fix wrongly logged dropped metric count ([bug #14670836](https://msazure.visualstudio.com/One/_workitems/edit/14670836)).
  * Add new config for backpressure memory limits autodiscovery.

 -- Geneva Metrics Agent & SDKs team <metricsagentsdksteam2@microsoft.com>  Fri, 10 Jun 2022 00:00:00 -0000

metricsext2 (2.2022.505.1734-d239bc) unstable; urgency=low

  * Upgrade opentelemetry-proto submodule from v.0.7.0 to v.0.10.0.
  * Change prom account label from `microsoft_metrics_stream` to `microsoft_metrics_include_label`.
  * Add option to use HTTP(s) proxy through environment variables in Linux.
  * Add option to validate server certificate authorities (CA).
  * Add workaround for USSec/USNat stamps having too old versions of Geneva Metrics backend (supporting v5 ME-to-FE protocol only) by detecting such situations and downgrading protocol version (should only affect standalone ME installations and ME supplied in MA).
  * Add opt-out for last sampling mode breaking change (dropping metrics arriving late to maintain "sum=min=max=value, count=1" contract) introduced in ME v2.2021.1210.2108-f979e1. By setting config override `lastSamplingModeLegacy` to true, one can revert ME back to original behavior.
  * Add "ME-Request-Info" as header for ME http calls publishing metrics to give extra info to FE for ME calls tracing.
  * For Overlake:
    * Change shutdown timeout to 0.5 second to reduce probability of forceful kill.
    * Change the set of ip addresses to use ipv6 as MdmProxy for FairFax.
  * Add publication of aggregated metrics as logs on Linux through MDSD.
  * Add maxRawEventInputQueueSizeInBytes config for backpressure and throttling.

 -- Geneva Metrics Agent & SDKs team <metricsagentsdksteam2@microsoft.com>  Thu, 05 May 2022 00:00:00 -0000

metricsext2 (2.2022.312.2300-d1b4f6) unstable; urgency=low

  * Change default prom raw-type metric namespace from `Prometheus` to `_azure_managed_prometheus` to allow running side-by-side with prom-mdm-converter solution.
  * For Overlake:
    * Fix bug that cause invalidation of the global Overlake certificate ([bug #13703519](https://msazure.visualstudio.com/DefaultCollection/One/_workitems/edit/13703519)).
  * Add authentication through User Managed Identities.
  * Change ME Docker builds for CDPX isolated ACRs to be based on Ubuntu 20.04 (instead of Ubuntu 16.04).
  * Add semi-static ME builds targeting arm64 platform to OB pipeline.
  * Add GIG client side load balanced publishing.
  * Add Machine publication target for internal metrics.

 -- Geneva Metrics Agent & SDKs team <metricsagentsdksteam2@microsoft.com>  Mon, 14 Mar 2022 00:00:00 -0000

metricsext2 (2.2022.216.1107-3efd15) unstable; urgency=low

  * Fix race condition in logging ([bug #12907377](https://msazure.visualstudio.com/One/_workitems/edit/12907377)).
  * Add publication using AMCS tokens.
  * Remove the check for "not_before" key in JSON returned by IMDS for MSI token.
  * Upgrade national cloud Docker container builds to be based on Ubuntu 18.04 (instead of Ubuntu 16.04).
  * Remove special handling for DNS resolution errors ([bug #12828499](https://msazure.visualstudio.com/One/_workitems/edit/12828499)).
  * Fix potential race condition in transformation rules during ME startup ([bug #12886281](https://msazure.visualstudio.com/One/_workitems/edit/12886281)).
  * Fix GIG publishing request with malformed 'endpoint' parameter due to using URL ([bug #12966877](https://msazure.visualstudio.com/One/_workitems/edit/12966877)).
  * Fix potential race condition in `Watchdog` class ([bug #12887091](https://msazure.visualstudio.com/DefaultCollection/One/_workitems/edit/12887091)).
  * Add support for OTLP counters, gauges and integer histogram as "native MDM" events.
  * Fix telemetry events collection has incorrect start-end time values ([bug #13105200](https://msazure.visualstudio.com/One/_workitems/edit/13105200)).
  * Fix faulty type conversions while handling OTel metrics ([bug #13163750](https://msazure.visualstudio.com/One/_workitems/edit/13163750)).
  * Fix direct internal metrics creating metric events when internalMetrics2 is disabled ([bug #13190085](https://msazure.visualstudio.com/One/_workitems/edit/13190085/)).
  * Fix throttling metrics issues and improve performance ([bug #13221425](https://msazure.visualstudio.com/One/_workitems/edit/13221425)).
  * Fix performance regression in certificate handling on Windows ([bug #13215374](https://msazure.visualstudio.com/One/_workitems/edit/13215374)).
  * Fix certificate problems derived from caching http_client objects ([bug #10080986](https://msazure.visualstudio.com/One/_workitems/edit/10080986)).

 -- Geneva Metrics Agent & SDKs team <metricsagentsdksteam2@microsoft.com>  Wed, 16 Feb 2022 00:00:00 -0000

metricsext2 (2.2021.1210.2108-f979e1) unstable; urgency=low

  * Change behavior of last sampling mode: metrics with last sampling mode enabled will strictly maintain contract of having Sum=Min=Max=Value, Count=1 at all times — at cost of dropping backdated events which arrive later than aggregation interval (1 minute) closes.
  * Add new configuration to specify high priority accounts which would not be throttled when backpressure is active ([PR #5442797](https://msazure.visualstudio.com/DefaultCollection/One/_git/EngSys-MDA-MetricsExtension/pullrequest/5442797)).
  * Fix dSMS notify file permission denied bug ([bug #12802761](https://msazure.visualstudio.com/One/_workitems/edit/12802761)).
  * Add internalMetricsMachineAccountName config to redirect following metrics to one account: memory growth areas, throttling and ingested events metrics ([PR #5458830](https://msazure.visualstudio.com/DefaultCollection/One/_git/EngSys-MDA-MetricsExtension/pullrequest/5458830)).
  * Add monitoring account for internal metrics emitted via logger ([PR #5458830](https://msazure.visualstudio.com/One/_git/EngSys-MDA-MetricsExtension/pullrequest/5408253)).
  * Add ingested events count internal metrics to ME sources ([PR #5352002](https://msazure.visualstudio.com/One/_git/EngSys-MDA-MetricsExtension/pullrequest/5352002)).
  * Add Oversized histogram data count to internal metric v2 ([PR #5435512](https://msazure.visualstudio.com/One/_git/EngSys-MDA-MetricsExtension/pullrequest/5435512)).
  * Add GIG MonMon telemetry pipeline. ([PR #5126286](https://msazure.visualstudio.com/One/_git/EngSys-MDA-MetricsExtension/pullrequest/5126286)).
  * Upgrade GIG schemas. ([PR #5399429](https://msazure.visualstudio.com/One/_git/EngSys-MDA-MetricsExtension/pullrequest/5399429)).

 -- Geneva Metrics Agent & SDKs team <metricsagentsdksteam2@microsoft.com>  Fri, 10 Dec 2021 00:00:00 -0000

metricsext2 (2.2021.1125.1931-9644e4) unstable; urgency=low

  * Fix handling 100 Continue server response in WinHttpPal ([bug #12666714](https://msazure.visualstudio.com/One/_workitems/edit/12666714/)).
  * Fix the time calculation for the string interning cache clear event ([bug #12419370](https://msazure.visualstudio.com/One/_workitems/edit/12419370/)).
  * Fix the unconditional swapping of string interning cache between primary and secondary, when both are above the configuration limits ([bug #12419158](https://msazure.visualstudio.com/One/_workitems/edit/12419158/)).
  * Fix the time calculation for the forceful shutdown ([bug #12373393](https://msazure.visualstudio.com/DefaultCollection/One/_workitems/edit/12373393/)).
  * Add GIG MonMon diagnosability pipeline (publishing selected error logs to GIG QoS).
  * Add to metric_key condition in transformation rules the ability to specify a list of names/prefixes for accounts/namespaces/metric names, increasing performance in some scenarios.
  * Fix dSMS on Linux filewatcher exception handling in ThumbprintLoader if global ACMS notify file does not exist ([bug #11704967](https://msazure.visualstudio.com/DefaultCollection/One/_workitems/edit/11704967/)).
  * Add authn/authz through System Managed Identities obtained from IMDS services.
  * Fix config override key `shutdownRequestedThreshold` processing which didn't work before.
  * Fix the transformation rule setting dimension was not working when having env var as value source ([bug #11038936](https://msazure.visualstudio.com/DefaultCollection/One/_workitems/edit/11038936/)).
  * Fix the InfluxDB processor was not resetting the preraw event after being modified by transformation rules ([bug #11041643](https://msazure.visualstudio.com/DefaultCollection/One/_workitems/edit/11041643/)).
  * Fix the preraw event `operator<<` was dumping an empty string for account/namespace/metricname under some circumstances ([bug #11036683](https://msazure.visualstudio.com/DefaultCollection/One/_workitems/edit/11036683/)).
  * Fix potential bug when infinite or NaN metric is considered as valid ([bug #10485610](https://msazure.visualstudio.com/One/_workitems/edit/10485610)).
  * Change banned accounts list to explictly consider empty/missing account traffic as "banned".
  * Fix bug in File and Console logger modes: potential undefined behavior when 2 threads were writing a log entry at the same time ([bug #12506928](https://msazure.visualstudio.com/One/_workitems/edit/12506928)).
  * Fix the bug in Linux certificate store triggering when HTTP 403 response received  ([bug #12048918](https://msazure.visualstudio.com/One/_workitems/edit/12048918)).
  * Fix watchdog triggering prematurely if NTP has been changing the time on the host ([bug #11132416](https://msazure.visualstudio.com/DefaultCollection/One/_workitems/edit/11132416)).
  * Change certificate handling logic.
  * Change RefCountedString approach to replace custom reference counting design with std::shared_ptr.
  * Add performance improvements in string interning cache data structure ([PR #5222176](https://msazure.visualstudio.com/One/_git/EngSys-MDA-MetricsExtension/pullrequest/5222176)).

 -- Geneva Metrics Agent & SDKs team <metricsagentsdksteam2@microsoft.com>  Thu, 25 Nov 2021 00:00:00 -0000

metricsext2 (2.2021.924.1646-2df972) unstable; urgency=low

  * Security fix: update lz4 library used to mitigate [CVE-2021-3520](https://nvd.nist.gov/vuln/detail/CVE-2021-3520).
  * For OTLP:
    * Add `microsoft_metrics_stream` as a label that will be recognized specially to specify Geneva Metrics account in metrics traffic.
    * Add support for Staleness-NaN for raw-type metrics.
  * Add support for new platform: Mariner 1.0 RPMs of MetricsExtension are available in <https://packages.microsoft.com/cbl-mariner/1.0/prod/extras/> repo.
  * Fix connectivity test failures on startup (which are expected) to be not listed as errors.
  * For Overlake:
    * Enable support for `influxdb_abstract` input channel.
    * Add support for new squashfs image format for Overlake 20.08.
    * Change HealthStore emission to use UNIX domain socket instead of port 8000.
  * Add backpressure throttling for private preview (disabled by default, opt-in with setting config overrides `enableBackpressureSupport` to true and `processResidentSetSizeLimitInBytes` to desired memory limit in bytes, monitor with internal metrics v2 by setting `enableInternalMetrics2` to true).
  * Remove `shrinkAggregationQueueOnReset` config override option: this has been proven to never work in the provided implementation, and the design is not achieving desired goals.

 -- Geneva Metrics Agent & SDKs team <metricsagentsdksteam2@microsoft.com>  Fri, 24 Sep 2021 00:00:00 -0000

