opentelemetry.proto.metrics.v1.AggregationTemporality */ class AggregationTemporality { /** * UNSPECIFIED is the default AggregationTemporality, it MUST not be used. * * Generated from protobuf enum AGGREGATION_TEMPORALITY_UNSPECIFIED = 0; */ const AGGREGATION_TEMPORALITY_UNSPECIFIED = 0; /** * DELTA is an AggregationTemporality for a metric aggregator which reports * changes since last report time. Successive metrics contain aggregation of * values from continuous and non-overlapping intervals. * The values for a DELTA metric are based only on the time interval * associated with one measurement cycle. There is no dependency on * previous measurements like is the case for CUMULATIVE metrics. * For example, consider a system measuring the number of requests that * it receives and reports the sum of these requests every second as a * DELTA metric: * 1. The system starts receiving at time=t_0. * 2. A request is received, the system measures 1 request. * 3. A request is received, the system measures 1 request. * 4. A request is received, the system measures 1 request. * 5. The 1 second collection cycle ends. A metric is exported for the * number of requests received over the interval of time t_0 to * t_0+1 with a value of 3. * 6. A request is received, the system measures 1 request. * 7. A request is received, the system measures 1 request. * 8. The 1 second collection cycle ends. A metric is exported for the * number of requests received over the interval of time t_0+1 to * t_0+2 with a value of 2. * * Generated from protobuf enum AGGREGATION_TEMPORALITY_DELTA = 1; */ const AGGREGATION_TEMPORALITY_DELTA = 1; /** * CUMULATIVE is an AggregationTemporality for a metric aggregator which * reports changes since a fixed start time. This means that current values * of a CUMULATIVE metric depend on all previous measurements since the * start time. Because of this, the sender is required to retain this state * in some form. If this state is lost or invalidated, the CUMULATIVE metric * values MUST be reset and a new fixed start time following the last * reported measurement time sent MUST be used. * For example, consider a system measuring the number of requests that * it receives and reports the sum of these requests every second as a * CUMULATIVE metric: * 1. The system starts receiving at time=t_0. * 2. A request is received, the system measures 1 request. * 3. A request is received, the system measures 1 request. * 4. A request is received, the system measures 1 request. * 5. The 1 second collection cycle ends. A metric is exported for the * number of requests received over the interval of time t_0 to * t_0+1 with a value of 3. * 6. A request is received, the system measures 1 request. * 7. A request is received, the system measures 1 request. * 8. The 1 second collection cycle ends. A metric is exported for the * number of requests received over the interval of time t_0 to * t_0+2 with a value of 5. * 9. The system experiences a fault and loses state. * 10. The system recovers and resumes receiving at time=t_1. * 11. A request is received, the system measures 1 request. * 12. The 1 second collection cycle ends. A metric is exported for the * number of requests received over the interval of time t_1 to * t_0+1 with a value of 1. * Note: Even though, when reporting changes since last report time, using * CUMULATIVE is valid, it is not recommended. This may cause problems for * systems that do not use start_time to determine when the aggregation * value was reset (e.g. Prometheus). * * Generated from protobuf enum AGGREGATION_TEMPORALITY_CUMULATIVE = 2; */ const AGGREGATION_TEMPORALITY_CUMULATIVE = 2; private static $valueToName = [ self::AGGREGATION_TEMPORALITY_UNSPECIFIED => 'AGGREGATION_TEMPORALITY_UNSPECIFIED', self::AGGREGATION_TEMPORALITY_DELTA => 'AGGREGATION_TEMPORALITY_DELTA', self::AGGREGATION_TEMPORALITY_CUMULATIVE => 'AGGREGATION_TEMPORALITY_CUMULATIVE', ]; public static function name($value) { if (!isset(self::$valueToName[$value])) { throw new UnexpectedValueException(sprintf( 'Enum %s has no name defined for value %s', __CLASS__, $value)); } return self::$valueToName[$value]; } public static function value($name) { $const = __CLASS__ . '::' . strtoupper($name); if (!defined($const)) { throw new UnexpectedValueException(sprintf( 'Enum %s has no value defined for name %s', __CLASS__, $name)); } return constant($const); } }