inspektor-gadget

Форк
0
41 строка · 1.4 Кб
1
// Copyright 2023 The Inspektor Gadget authors
2
//
3
// Licensed under the Apache License, Version 2.0 (the "License");
4
// you may not use this file except in compliance with the License.
5
// You may obtain a copy of the License at
6
//
7
//     http://www.apache.org/licenses/LICENSE-2.0
8
//
9
// Unless required by applicable law or agreed to in writing, software
10
// distributed under the License is distributed on an "AS IS" BASIS,
11
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
// See the License for the specific language governing permissions and
13
// limitations under the License.
14

15
package prometheus
16

17
import (
18
	sdkmetric "go.opentelemetry.io/otel/sdk/metric"
19
)
20

21
// histogramViewFunc returns a view function for a histogram instrument.
22
// It allows using custom aggregation (e.g histogram buckets) for a given instrument.
23
func (p *Prometheus) histogramViewFunc() sdkmetric.View {
24
	return func(instrument sdkmetric.Instrument) (sdkmetric.Stream, bool) {
25
		if instrument.Kind != sdkmetric.InstrumentKindHistogram {
26
			return sdkmetric.Stream{}, false
27
		}
28
		bc, ok := p.bucketConfigs[instrument.Name]
29
		if !ok {
30
			return sdkmetric.Stream{}, false
31
		}
32
		return sdkmetric.Stream{
33
			Name:        instrument.Name,
34
			Description: instrument.Description,
35
			Unit:        instrument.Unit,
36
			Aggregation: sdkmetric.AggregationExplicitBucketHistogram{
37
				Boundaries: bc.buckets(),
38
			},
39
		}, true
40
	}
41
}
42

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.