Copyright The OpenTelemetry Authors Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.
go:generate stringer -type=Kind

package metric
Kind describes the kind of instrument.
type Kind int8

ValueRecorderKind indicates a ValueRecorder instrument.
ValueObserverKind indicates an ValueObserver instrument.
CounterKind indicates a Counter instrument.
UpDownCounterKind indicates a UpDownCounter instrument.
SumObserverKind indicates a SumObserver instrument.
UpDownSumObserverKind indicates a UpDownSumObserver instrument.
Synchronous returns whether this is a synchronous kind of instrument.
func ( Kind) () bool {
	switch  {
	case CounterKind, UpDownCounterKind, ValueRecorderKind:
		return true
	}
	return false
}
Asynchronous returns whether this is an asynchronous kind of instrument.
func ( Kind) () bool {
	return !.Synchronous()
}
Adding returns whether this kind of instrument adds its inputs (as opposed to Grouping).
func ( Kind) () bool {
	switch  {
	case CounterKind, UpDownCounterKind, SumObserverKind, UpDownSumObserverKind:
		return true
	}
	return false
}
Adding returns whether this kind of instrument groups its inputs (as opposed to Adding).
func ( Kind) () bool {
	return !.Adding()
}
Monotonic returns whether this kind of instrument exposes a non-decreasing sum.
func ( Kind) () bool {
	switch  {
	case CounterKind, SumObserverKind:
		return true
	}
	return false
}
Cumulative returns whether this kind of instrument receives precomputed sums.
func ( Kind) () bool {
	return .Adding() && .Asynchronous()