mirror of
				https://github.com/superseriousbusiness/gotosocial.git
				synced 2025-10-30 23:22:26 -05:00 
			
		
		
		
	- codeberg.org/gruf/go-ffmpreg: v0.6.9 -> v0.6.10
- github.com/ncruces/go-sqlite3: v0.27.1 -> v0.28.0
- github.com/stretchr/testify: v1.10.0 -> v1.11.1
- github.com/tdewolff/minify/v2 v2.23.11 -> v2.24.2
- go.opentelemetry.io/otel{,/*}: v1.37.0 -> v1.38.0
- go.opentelemetry.io/contrib/*: v0.62.0 -> v0.63.0
Reviewed-on: https://codeberg.org/superseriousbusiness/gotosocial/pulls/4406
Co-authored-by: kim <grufwub@gmail.com>
Co-committed-by: kim <grufwub@gmail.com>
		
	
			
		
			
				
	
	
		
			86 lines
		
	
	
	
		
			4 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
			
		
		
	
	
			86 lines
		
	
	
	
		
			4 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
| // Copyright 2025 The Prometheus 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.
 | |
| // Provenance-includes-location: https://github.com/prometheus/prometheus/blob/3602785a89162ccc99a940fb9d862219a2d02241/config/config.go
 | |
| // Provenance-includes-license: Apache-2.0
 | |
| // Provenance-includes-copyright: Copyright The Prometheus Authors
 | |
| 
 | |
| package otlptranslator
 | |
| 
 | |
| // TranslationStrategyOption is a constant that defines how metric and label
 | |
| // names should be handled during translation. The recommended approach is to
 | |
| // use either UnderscoreEscapingWithSuffixes for full Prometheus-style
 | |
| // compatibility, or NoTranslation for Otel-style names.
 | |
| type TranslationStrategyOption string
 | |
| 
 | |
| var (
 | |
| 	// NoUTF8EscapingWithSuffixes will accept metric/label names as they are. Unit
 | |
| 	// and type suffixes may be added to metric names, according to certain rules.
 | |
| 	NoUTF8EscapingWithSuffixes TranslationStrategyOption = "NoUTF8EscapingWithSuffixes"
 | |
| 	// UnderscoreEscapingWithSuffixes is the default option for translating OTLP
 | |
| 	// to Prometheus. This option will translate metric name characters that are
 | |
| 	// not alphanumerics/underscores/colons to underscores, and label name
 | |
| 	// characters that are not alphanumerics/underscores to underscores. Unit and
 | |
| 	// type suffixes may be appended to metric names, according to certain rules.
 | |
| 	UnderscoreEscapingWithSuffixes TranslationStrategyOption = "UnderscoreEscapingWithSuffixes"
 | |
| 	// UnderscoreEscapingWithoutSuffixes translates metric name characters that
 | |
| 	// are not alphanumerics/underscores/colons to underscores, and label name
 | |
| 	// characters that are not alphanumerics/underscores to underscores, but
 | |
| 	// unlike UnderscoreEscapingWithSuffixes it does not append any suffixes to
 | |
| 	// the names.
 | |
| 	UnderscoreEscapingWithoutSuffixes TranslationStrategyOption = "UnderscoreEscapingWithoutSuffixes"
 | |
| 	// NoTranslation (EXPERIMENTAL): disables all translation of incoming metric
 | |
| 	// and label names. This offers a way for the OTLP users to use native metric
 | |
| 	// names, reducing confusion.
 | |
| 	//
 | |
| 	// WARNING: This setting has significant known risks and limitations (see
 | |
| 	// https://prometheus.io/docs/practices/naming/  for details): * Impaired UX
 | |
| 	// when using PromQL in plain YAML (e.g. alerts, rules, dashboard, autoscaling
 | |
| 	// configuration). * Series collisions which in the best case may result in
 | |
| 	// OOO errors, in the worst case a silently malformed time series. For
 | |
| 	// instance, you may end up in situation of ingesting `foo.bar` series with
 | |
| 	// unit `seconds` and a separate series `foo.bar` with unit `milliseconds`.
 | |
| 	//
 | |
| 	// As a result, this setting is experimental and currently, should not be used
 | |
| 	// in production systems.
 | |
| 	//
 | |
| 	// TODO(ArthurSens): Mention `type-and-unit-labels` feature
 | |
| 	// (https://github.com/prometheus/proposals/pull/39) once released, as
 | |
| 	// potential mitigation of the above risks.
 | |
| 	NoTranslation TranslationStrategyOption = "NoTranslation"
 | |
| )
 | |
| 
 | |
| // ShouldEscape returns true if the translation strategy requires that metric
 | |
| // names be escaped.
 | |
| func (o TranslationStrategyOption) ShouldEscape() bool {
 | |
| 	switch o {
 | |
| 	case UnderscoreEscapingWithSuffixes, UnderscoreEscapingWithoutSuffixes:
 | |
| 		return true
 | |
| 	case NoTranslation, NoUTF8EscapingWithSuffixes:
 | |
| 		return false
 | |
| 	default:
 | |
| 		return false
 | |
| 	}
 | |
| }
 | |
| 
 | |
| // ShouldAddSuffixes returns a bool deciding whether the given translation
 | |
| // strategy should have suffixes added.
 | |
| func (o TranslationStrategyOption) ShouldAddSuffixes() bool {
 | |
| 	switch o {
 | |
| 	case UnderscoreEscapingWithSuffixes, NoUTF8EscapingWithSuffixes:
 | |
| 		return true
 | |
| 	case UnderscoreEscapingWithoutSuffixes, NoTranslation:
 | |
| 		return false
 | |
| 	default:
 | |
| 		return false
 | |
| 	}
 | |
| }
 |