In addition to resolving issue #228 and adding back stack traces to DocumentClientException this PR
Addresses three specific resource leaks:
Inactive RntbdServiceEndpoint instances are now closed and do not accumulate over time
RntbdContext instances no longer hold on to pooled byte buffers
RntbdResponse.decode now releases the byte buffers associated with partially decoded responses.
Adds RntbdTransportClient and RntbdServiceEndpoint metrics using micrometer.
Metrics are encapsulated by the RntbdMetrics class and an instance of this class is instantiated by each RntbdServiceEndpoint.
Console logging can be turned on/or using this Java property:
cosmos.monitoring.consoleLogging.step
Reporting frequency in seconds. Use a value less than or equal to zero to explicitly disable console logging.
Customers can collect metrics using the MetricsRegistry of their choosing using (the new) AsyncDocumentClient.monitor method
The benchmark app enables monitoring using Application Insights by way of these Java properties:
cosmos.monitoring.azureMonitor.instrumentationKey
An Azure Application Insights instrumentation key
cosmos.monitoring.azureMonitor.step
Reporting frequency in seconds
cosmos.monitoring.azureMonitor.disabled
A value of true disables monitoring (useful during development/testing)
The benchmark app enables monitoring using Graphite by way of these Java properties:
cosmos.monitoring.graphite.serviceAddress
Graphite pickle (not plaintext) endpoint address (e.g., cosmos-sdk.eastus.cloudapp.azure.com:2004)
cosmos.monitoring.graphite.step
Reporting frequency in seconds
cosmos.monitoring.graphite.disabled
A value of true disables monitoring (useful during development/testing)
In addition to resolving issue #228 and adding back stack traces to
DocumentClientException
this PRAddresses three specific resource leaks:
RntbdServiceEndpoint
instances are now closed and do not accumulate over timeRntbdContext
instances no longer hold on to pooled byte buffersRntbdResponse.decode
now releases the byte buffers associated with partially decoded responses.Adds
RntbdTransportClient
andRntbdServiceEndpoint
metrics using micrometer.RntbdMetrics
class and an instance of this class is instantiated by eachRntbdServiceEndpoint
. Console logging can be turned on/or using this Java property:cosmos.monitoring.consoleLogging.step
Reporting frequency in seconds. Use a value less than or equal to zero to explicitly disable console logging.MetricsRegistry
of their choosing using (the new)AsyncDocumentClient.monitor
methodcosmos.monitoring.azureMonitor.instrumentationKey
An Azure Application Insights instrumentation keycosmos.monitoring.azureMonitor.step
Reporting frequency in secondscosmos.monitoring.azureMonitor.disabled
A value of true disables monitoring (useful during development/testing)cosmos.monitoring.graphite.serviceAddress
Graphite pickle (not plaintext) endpoint address (e.g.,cosmos-sdk.eastus.cloudapp.azure.com:2004
)cosmos.monitoring.graphite.step
Reporting frequency in secondscosmos.monitoring.graphite.disabled
A value of true disables monitoring (useful during development/testing)E2E test results
e2e.log
Read/write latency performance numbers (complete performance test results attached)