Skip to main content
Chronosphere metrics have a variety of limits, depending on where your data is in the processing cycle. Your license limits the amount of data you can write to and store within Chronosphere. Metrics quotas assign specific percentages of your total persisted writes limit to pools of metrics. Use quotas to limit groups of metrics and ensure Chronosphere retains the highest value metrics. See Managing invalid metrics for information about debugging invalid metrics.

Size limits

Metrics have the following size limits, which help ensure consistency and prevent issues with queries:
  • Label names: 512 bytes
  • Label values: 1,024 bytes
  • Max number of labels: 64 labels
  • Total time series bytes: 4,096 bytes
If label values exceed 1,024 bytes, Observability Platform shortens the label values to accept the time series.
Observability Platform shortens label values before validating the total time series byte length. When label values that exceed the maximum length, Observability Platform hashes the original value, and replaces the middle portion of the label with a hash value in this format:
[Value shortened; Original=(len:1063  XXH64:aaf02cb52ed0a0fe)]
This strategy ensures that the original and shortened label values have the same prefix and suffix. The inserted hash value preserves uniqueness in the shortened values. The following example shows a metric with a long label value.
# HELP application_exceptions_total Total count of application-level exceptions.
# TYPE application_exceptions_total counter
application_exceptions_total{exception="JDBCConnectionException",error_detail="org.hibernate.exception.
JDBCConnectionException: Error calling Driver#connect at org.hibernate.exception.internal.
SQLStateConversionDelegate.convert(SQLStateConversionDelegate.java:112) at org.hibernate.exception.
internal.StandardSQLExceptionConverter.convert(StandardSQLExceptionConverter.java:42)
at org.hibernate.engine.jdbc.connections.internal.BasicConnectionCreator.convertSqlException(BasicConnectionCreator.
java:111) at org.hibernate.engine.jdbc.connections.internal.DriverConnectionCreator.makeConnection
(DriverConnectionCreator.java:38) at org.hibernate.engine.jdbc.connections.internal.BasicConnectionCreator.
createConnection(BasicConnectionCreator.java:58) at org.hibernate.engine.jdbc.connections.internal.
DriverManagerConnectionProviderImpl$CheckConnectionTask.run(DriverManagerConnectionProviderImpl.java:285)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) at java.util.concurrent.
FutureTask.run(FutureTask.java:266) at java.util.concurrent.ThreadPoolExecutor.runWorker
(ThreadPoolExecutor.java:1149) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.
java:624) at java.lang.Thread.run(Thread.java:748) Caused by: com.mysql.cj.exceptions.
CJCommunicationsException: Communications link failure. The last packet sent successfully to the server
was 0 milliseconds ago. The driver has not received any packets from the server. at sun.reflect.
NativeConstructorAccessorImpl.newInstance0(Native Method) at sun.reflect.NativeConstructorAccessorImpl.
newInstance(NativeConstructorAccessorImpl.java:62) at sun.reflect.DelegatingConstructorAccessorImpl.
newInstance(DelegatingConstructorAccessorImpl.java:45) at java.lang.reflect.Constructor.newInstance
(Constructor.java:423)"} 1.0
The following example shows the same metric, but with a shortened label value to allow ingestion. The hashed value indicates where Observability Platform shortened the label value.
# HELP application_exceptions_total Total count of application-level exceptions.
# TYPE application_exceptions_total counter
application_exceptions_total{exception="JDBCConnectionException",error_detail="org.hibernate.exception.
JDBCConnectionException: Error calling Driver#connect at org.hibernate.exception.internal.
SQLStateConversionDelegate.convert(SQLStateConversionDelegate.java:112) at org.hibernate.exception.
internal.StandardSQLExceptionConverter.convert(StandardSQLExceptionConverter.java:42) at org.hibernate.
engine.jdbc.connections.internal.BasicConnectionCreator.convertSqlException(BasicConnectionCreator.
java:111) at org.hibernate.engine.jdbc.connections.internal.DriverConnectionCreator.
[Value shortened; Original=(len:1063  XXH64:aaf02cb52ed0a0fe)]makeConnection(DriverConnectionCreator.java:38)
at org.hibernate.engine.jdbc.connections.internal.BasicConnectionCreator.createConnection(BasicConnectionCreator.
java:58) at org.hibernate.engine.jdbc.connections.internal.
DriverManagerConnectionProviderImpl$CheckConnectionTask.run(DriverManagerConnectionProviderImpl.java:285)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) at java.util.concurrent.
FutureTask.run(FutureTask.java:266) at java.util.concurrent.ThreadPoolExecutor.runWorker
(ThreadPoolExecutor.java:1149) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.
java:624) at java.lang.Thread.run(Thread.java:748) Caused by: com.mysql.cj.exceptions.
CJCommunicationsException: Communications link failure. The last packet sent successfully to the server
was 0 milliseconds ago. The driver has not received any packets from the server. at sun.reflect.
NativeConstructorAccessorImpl.newInstance0(Native Method) at sun.reflect.NativeConstructorAccessorImpl.
newInstance(NativeConstructorAccessorImpl.java:62) at sun.reflect.DelegatingConstructorAccessorImpl.
newInstance(DelegatingConstructorAccessorImpl.java:45) at java.lang.reflect.Constructor.newInstance
(Constructor.java:423)"} 1.0

Late-arriving metrics

Prometheus, OpenTelemetry, and other metric formats include one or more timestamp values for each data point. These values indicate when a sample was observed, or represent the time range of the data point. Chronosphere Observability Platform can accept late-arriving data points within a time frame, depending whether the data point matches an aggregation rule or is ingested without aggregation:
  • Aggregation rules accept data points from two minutes to eight minutes past the current ingestion time.
  • Raw data points can be written to the database up to two hours before the ingestion timestamp.

Future-arriving metrics

Observability Platform accepts incoming metrics one minute ahead of the current timestamp. If metrics arrive outside of this one-minute buffer, Observability Platform rejects those metrics and returns an error indicating that metrics arrived too far into the future.