You've already forked opentelemetry-go
							
							
				mirror of
				https://github.com/open-telemetry/opentelemetry-go.git
				synced 2025-10-31 00:07:40 +02:00 
			
		
		
		
	Update golangci-lint to v1.48.0 (#3105)
* Update golangci-lint to v1.48.0 Co-authored-by: Chester Cheung <cheung.zhy.csu@gmail.com>
This commit is contained in:
		
							
								
								
									
										2
									
								
								.github/workflows/ci.yml
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								.github/workflows/ci.yml
									
									
									
									
										vendored
									
									
								
							| @@ -8,7 +8,7 @@ env: | ||||
|   # Path to where test results will be saved. | ||||
|   TEST_RESULTS: /tmp/test-results | ||||
|   # Default minimum version of Go to support. | ||||
|   DEFAULT_GO_VERSION: 1.17 | ||||
|   DEFAULT_GO_VERSION: 1.18 | ||||
| jobs: | ||||
|   lint: | ||||
|     runs-on: ubuntu-latest | ||||
|   | ||||
| @@ -185,6 +185,6 @@ func TestLookup(t *testing.T) { | ||||
| 	require.True(t, has) | ||||
| 	require.Equal(t, int64(1), value.AsInt64()) | ||||
|  | ||||
| 	value, has = set.Value("D") | ||||
| 	_, has = set.Value("D") | ||||
| 	require.False(t, has) | ||||
| } | ||||
|   | ||||
| @@ -11,6 +11,7 @@ | ||||
| // 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. | ||||
|  | ||||
| package jaeger | ||||
|  | ||||
| import ( | ||||
|   | ||||
| @@ -11,6 +11,7 @@ | ||||
| // 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. | ||||
|  | ||||
| package jaeger | ||||
|  | ||||
| import ( | ||||
|   | ||||
| @@ -11,6 +11,7 @@ | ||||
| // 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. | ||||
|  | ||||
| package otlptracegrpc_test | ||||
|  | ||||
| import ( | ||||
|   | ||||
| @@ -5,7 +5,7 @@ go 1.17 | ||||
| require ( | ||||
| 	github.com/client9/misspell v0.3.4 | ||||
| 	github.com/gogo/protobuf v1.3.2 | ||||
| 	github.com/golangci/golangci-lint v1.45.3-0.20220330010013-d2ccc6d2bbbb | ||||
| 	github.com/golangci/golangci-lint v1.48.0 | ||||
| 	github.com/itchyny/gojq v0.12.7 | ||||
| 	github.com/jcchavezs/porto v0.4.0 | ||||
| 	github.com/wadey/gocovmerge v0.0.0-20160331181800-b5bfa59ec0ad | ||||
| @@ -13,22 +13,24 @@ require ( | ||||
| 	go.opentelemetry.io/build-tools/dbotconf v0.0.0-20220706175322-58de0d25b85c | ||||
| 	go.opentelemetry.io/build-tools/multimod v0.0.0-20220706175322-58de0d25b85c | ||||
| 	go.opentelemetry.io/build-tools/semconvgen v0.0.0-20220706175322-58de0d25b85c | ||||
| 	golang.org/x/mod v0.6.0-dev.0.20220106191415-9b9b3d81d5e3 | ||||
| 	golang.org/x/tools v0.1.10 | ||||
| 	golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4 | ||||
| 	golang.org/x/tools v0.1.12 | ||||
| ) | ||||
|  | ||||
| require ( | ||||
| 	4d63.com/gochecknoglobals v0.1.0 // indirect | ||||
| 	github.com/Antonboom/errname v0.1.5 // indirect | ||||
| 	github.com/Antonboom/nilnil v0.1.0 // indirect | ||||
| 	github.com/BurntSushi/toml v1.0.0 // indirect | ||||
| 	github.com/Antonboom/errname v0.1.7 // indirect | ||||
| 	github.com/Antonboom/nilnil v0.1.1 // indirect | ||||
| 	github.com/BurntSushi/toml v1.2.0 // indirect | ||||
| 	github.com/Djarvur/go-err113 v0.0.0-20210108212216-aea10b59be24 // indirect | ||||
| 	github.com/GaijinEntertainment/go-exhaustruct/v2 v2.2.2 // indirect | ||||
| 	github.com/Masterminds/semver v1.5.0 // indirect | ||||
| 	github.com/Microsoft/go-winio v0.4.16 // indirect | ||||
| 	github.com/OpenPeeDeeP/depguard v1.1.0 // indirect | ||||
| 	github.com/ProtonMail/go-crypto v0.0.0-20210428141323-04723f9f07d7 // indirect | ||||
| 	github.com/acomagu/bufpipe v1.0.3 // indirect | ||||
| 	github.com/alexkohler/prealloc v1.0.0 // indirect | ||||
| 	github.com/alingse/asasalint v0.0.11 // indirect | ||||
| 	github.com/ashanbrown/forbidigo v1.3.0 // indirect | ||||
| 	github.com/ashanbrown/makezero v1.1.1 // indirect | ||||
| 	github.com/beorn7/perks v1.0.1 // indirect | ||||
| @@ -40,8 +42,8 @@ require ( | ||||
| 	github.com/butuzov/ireturn v0.1.1 // indirect | ||||
| 	github.com/cespare/xxhash/v2 v2.1.2 // indirect | ||||
| 	github.com/charithe/durationcheck v0.0.9 // indirect | ||||
| 	github.com/chavacava/garif v0.0.0-20210405164556-e8a0a408d6af // indirect | ||||
| 	github.com/daixiang0/gci v0.3.3 // indirect | ||||
| 	github.com/chavacava/garif v0.0.0-20220316182200-5cad0b5181d4 // indirect | ||||
| 	github.com/daixiang0/gci v0.6.2 // indirect | ||||
| 	github.com/davecgh/go-spew v1.1.1 // indirect | ||||
| 	github.com/denis-tingaikin/go-header v0.4.3 // indirect | ||||
| 	github.com/emirpasic/gods v1.12.0 // indirect | ||||
| @@ -49,9 +51,10 @@ require ( | ||||
| 	github.com/ettle/strcase v0.1.1 // indirect | ||||
| 	github.com/fatih/color v1.13.0 // indirect | ||||
| 	github.com/fatih/structtag v1.2.0 // indirect | ||||
| 	github.com/firefart/nonamedreturns v1.0.4 // indirect | ||||
| 	github.com/fsnotify/fsnotify v1.5.4 // indirect | ||||
| 	github.com/fzipp/gocyclo v0.4.0 // indirect | ||||
| 	github.com/go-critic/go-critic v0.6.2 // indirect | ||||
| 	github.com/fzipp/gocyclo v0.6.0 // indirect | ||||
| 	github.com/go-critic/go-critic v0.6.3 // indirect | ||||
| 	github.com/go-git/gcfg v1.5.0 // indirect | ||||
| 	github.com/go-git/go-billy/v5 v5.3.1 // indirect | ||||
| 	github.com/go-git/go-git/v5 v5.4.2 // indirect | ||||
| @@ -68,12 +71,12 @@ require ( | ||||
| 	github.com/golang/protobuf v1.5.2 // indirect | ||||
| 	github.com/golangci/check v0.0.0-20180506172741-cfe4005ccda2 // indirect | ||||
| 	github.com/golangci/dupl v0.0.0-20180902072040-3e9179ac440a // indirect | ||||
| 	github.com/golangci/go-misc v0.0.0-20180628070357-927a3d87b613 // indirect | ||||
| 	github.com/golangci/go-misc v0.0.0-20220329215616-d24fe342adfe // indirect | ||||
| 	github.com/golangci/gofmt v0.0.0-20190930125516-244bba706f1a // indirect | ||||
| 	github.com/golangci/lint-1 v0.0.0-20191013205115-297bf364a8e0 // indirect | ||||
| 	github.com/golangci/maligned v0.0.0-20180506175553-b1d89398deca // indirect | ||||
| 	github.com/golangci/misspell v0.3.5 // indirect | ||||
| 	github.com/golangci/revgrep v0.0.0-20210930125155-c22e5001d4f2 // indirect | ||||
| 	github.com/golangci/revgrep v0.0.0-20220804021717-745bb2f7c2e6 // indirect | ||||
| 	github.com/golangci/unconvert v0.0.0-20180507085042-28b1c447d1f4 // indirect | ||||
| 	github.com/google/go-cmp v0.5.8 // indirect | ||||
| 	github.com/gordonklaus/ineffassign v0.0.0-20210914165742-4cc7213b9bc8 // indirect | ||||
| @@ -83,7 +86,7 @@ require ( | ||||
| 	github.com/gostaticanalysis/nilerr v0.1.1 // indirect | ||||
| 	github.com/hashicorp/errwrap v1.0.0 // indirect | ||||
| 	github.com/hashicorp/go-multierror v1.1.1 // indirect | ||||
| 	github.com/hashicorp/go-version v1.4.0 // indirect | ||||
| 	github.com/hashicorp/go-version v1.6.0 // indirect | ||||
| 	github.com/hashicorp/hcl v1.0.0 // indirect | ||||
| 	github.com/hexops/gotextdiff v1.0.3 // indirect | ||||
| 	github.com/imdario/mergo v0.3.12 // indirect | ||||
| @@ -95,98 +98,102 @@ require ( | ||||
| 	github.com/jirfag/go-printf-func-name v0.0.0-20200119135958-7558a9eaa5af // indirect | ||||
| 	github.com/julz/importas v0.1.0 // indirect | ||||
| 	github.com/kevinburke/ssh_config v0.0.0-20201106050909-4977a11b4351 // indirect | ||||
| 	github.com/kisielk/errcheck v1.6.0 // indirect | ||||
| 	github.com/kisielk/errcheck v1.6.2 // indirect | ||||
| 	github.com/kisielk/gotool v1.0.0 // indirect | ||||
| 	github.com/kulti/thelper v0.5.1 // indirect | ||||
| 	github.com/kunwardeep/paralleltest v1.0.3 // indirect | ||||
| 	github.com/kulti/thelper v0.6.3 // indirect | ||||
| 	github.com/kunwardeep/paralleltest v1.0.6 // indirect | ||||
| 	github.com/kyoh86/exportloopref v0.1.8 // indirect | ||||
| 	github.com/ldez/gomoddirectives v0.2.2 // indirect | ||||
| 	github.com/ldez/gomoddirectives v0.2.3 // indirect | ||||
| 	github.com/ldez/tagliatelle v0.3.1 // indirect | ||||
| 	github.com/leonklingele/grouper v1.1.0 // indirect | ||||
| 	github.com/lufeee/execinquery v1.0.0 // indirect | ||||
| 	github.com/lufeee/execinquery v1.2.1 // indirect | ||||
| 	github.com/magiconair/properties v1.8.6 // indirect | ||||
| 	github.com/maratori/testpackage v1.0.1 // indirect | ||||
| 	github.com/maratori/testpackage v1.1.0 // indirect | ||||
| 	github.com/matoous/godox v0.0.0-20210227103229-6504466cf951 // indirect | ||||
| 	github.com/mattn/go-colorable v0.1.12 // indirect | ||||
| 	github.com/mattn/go-isatty v0.0.14 // indirect | ||||
| 	github.com/mattn/go-runewidth v0.0.9 // indirect | ||||
| 	github.com/matttproud/golang_protobuf_extensions v1.0.1 // indirect | ||||
| 	github.com/mbilski/exhaustivestruct v1.2.0 // indirect | ||||
| 	github.com/mgechev/revive v1.1.4 // indirect | ||||
| 	github.com/mgechev/revive v1.2.1 // indirect | ||||
| 	github.com/mitchellh/go-homedir v1.1.0 // indirect | ||||
| 	github.com/mitchellh/mapstructure v1.5.0 // indirect | ||||
| 	github.com/moricho/tparallel v0.2.1 // indirect | ||||
| 	github.com/nakabonne/nestif v0.3.1 // indirect | ||||
| 	github.com/nbutton23/zxcvbn-go v0.0.0-20210217022336-fa2cb2858354 // indirect | ||||
| 	github.com/nishanths/exhaustive v0.7.11 // indirect | ||||
| 	github.com/nishanths/predeclared v0.2.1 // indirect | ||||
| 	github.com/nishanths/exhaustive v0.8.1 // indirect | ||||
| 	github.com/nishanths/predeclared v0.2.2 // indirect | ||||
| 	github.com/olekukonko/tablewriter v0.0.5 // indirect | ||||
| 	github.com/otiai10/copy v1.7.0 // indirect | ||||
| 	github.com/pelletier/go-toml v1.9.5 // indirect | ||||
| 	github.com/pelletier/go-toml/v2 v2.0.1 // indirect | ||||
| 	github.com/pelletier/go-toml/v2 v2.0.2 // indirect | ||||
| 	github.com/phayes/checkstyle v0.0.0-20170904204023-bfd46e6a821d // indirect | ||||
| 	github.com/pkg/errors v0.9.1 // indirect | ||||
| 	github.com/pmezard/go-difflib v1.0.0 // indirect | ||||
| 	github.com/polyfloyd/go-errorlint v0.0.0-20211125173453-6d6d39c5bb8b // indirect | ||||
| 	github.com/prometheus/client_golang v1.7.1 // indirect | ||||
| 	github.com/polyfloyd/go-errorlint v1.0.0 // indirect | ||||
| 	github.com/prometheus/client_golang v1.12.1 // indirect | ||||
| 	github.com/prometheus/client_model v0.2.0 // indirect | ||||
| 	github.com/prometheus/common v0.10.0 // indirect | ||||
| 	github.com/prometheus/procfs v0.6.0 // indirect | ||||
| 	github.com/quasilyte/go-ruleguard v0.3.15 // indirect | ||||
| 	github.com/quasilyte/gogrep v0.0.0-20220103110004-ffaa07af02e3 // indirect | ||||
| 	github.com/prometheus/common v0.32.1 // indirect | ||||
| 	github.com/prometheus/procfs v0.7.3 // indirect | ||||
| 	github.com/quasilyte/go-ruleguard v0.3.16-0.20220213074421-6aa060fab41a // indirect | ||||
| 	github.com/quasilyte/gogrep v0.0.0-20220120141003-628d8b3623b5 // indirect | ||||
| 	github.com/quasilyte/regex/syntax v0.0.0-20200407221936-30656e2c4a95 // indirect | ||||
| 	github.com/ryancurrah/gomodguard v1.2.3 // indirect | ||||
| 	github.com/quasilyte/stdinfo v0.0.0-20220114132959-f7386bf02567 // indirect | ||||
| 	github.com/ryancurrah/gomodguard v1.2.4 // indirect | ||||
| 	github.com/ryanrolds/sqlclosecheck v0.3.0 // indirect | ||||
| 	github.com/sanposhiho/wastedassign/v2 v2.0.6 // indirect | ||||
| 	github.com/securego/gosec/v2 v2.10.0 // indirect | ||||
| 	github.com/sashamelentyev/usestdlibvars v1.8.0 // indirect | ||||
| 	github.com/securego/gosec/v2 v2.12.0 // indirect | ||||
| 	github.com/sergi/go-diff v1.1.0 // indirect | ||||
| 	github.com/shazow/go-diff v0.0.0-20160112020656-b6b7b6733b8c // indirect | ||||
| 	github.com/sirupsen/logrus v1.8.1 // indirect | ||||
| 	github.com/sirupsen/logrus v1.9.0 // indirect | ||||
| 	github.com/sivchari/containedctx v1.0.2 // indirect | ||||
| 	github.com/sivchari/tenv v1.4.7 // indirect | ||||
| 	github.com/sivchari/nosnakecase v1.7.0 // indirect | ||||
| 	github.com/sivchari/tenv v1.7.0 // indirect | ||||
| 	github.com/sonatard/noctx v0.0.1 // indirect | ||||
| 	github.com/sourcegraph/go-diff v0.6.1 // indirect | ||||
| 	github.com/spf13/afero v1.8.2 // indirect | ||||
| 	github.com/spf13/cast v1.5.0 // indirect | ||||
| 	github.com/spf13/cobra v1.4.0 // indirect | ||||
| 	github.com/spf13/cobra v1.5.0 // indirect | ||||
| 	github.com/spf13/jwalterweatherman v1.1.0 // indirect | ||||
| 	github.com/spf13/pflag v1.0.5 // indirect | ||||
| 	github.com/spf13/viper v1.12.0 // indirect | ||||
| 	github.com/ssgreg/nlreturn/v2 v2.2.1 // indirect | ||||
| 	github.com/stbenjam/no-sprintf-host-port v0.1.1 // indirect | ||||
| 	github.com/stretchr/objx v0.4.0 // indirect | ||||
| 	github.com/stretchr/testify v1.7.5 // indirect | ||||
| 	github.com/subosito/gotenv v1.3.0 // indirect | ||||
| 	github.com/stretchr/testify v1.8.0 // indirect | ||||
| 	github.com/subosito/gotenv v1.4.0 // indirect | ||||
| 	github.com/sylvia7788/contextcheck v1.0.4 // indirect | ||||
| 	github.com/tdakkota/asciicheck v0.1.1 // indirect | ||||
| 	github.com/tetafro/godot v1.4.11 // indirect | ||||
| 	github.com/timakin/bodyclose v0.0.0-20210704033933-f49887972144 // indirect | ||||
| 	github.com/tomarrell/wrapcheck/v2 v2.6.0 // indirect | ||||
| 	github.com/tomarrell/wrapcheck/v2 v2.6.2 // indirect | ||||
| 	github.com/tommy-muehle/go-mnd/v2 v2.5.0 // indirect | ||||
| 	github.com/ultraware/funlen v0.0.3 // indirect | ||||
| 	github.com/ultraware/whitespace v0.0.5 // indirect | ||||
| 	github.com/uudashr/gocognit v1.0.5 // indirect | ||||
| 	github.com/uudashr/gocognit v1.0.6 // indirect | ||||
| 	github.com/xanzy/ssh-agent v0.3.0 // indirect | ||||
| 	github.com/yagipy/maintidx v1.0.0 // indirect | ||||
| 	github.com/yeya24/promlinter v0.1.1-0.20210918184747-d757024714a1 // indirect | ||||
| 	gitlab.com/bosi/decorder v0.2.1 // indirect | ||||
| 	github.com/yeya24/promlinter v0.2.0 // indirect | ||||
| 	gitlab.com/bosi/decorder v0.2.3 // indirect | ||||
| 	go.opentelemetry.io/build-tools v0.0.0-20220321164008-b8e03aff061a // indirect | ||||
| 	go.uber.org/atomic v1.9.0 // indirect | ||||
| 	go.uber.org/multierr v1.7.0 // indirect | ||||
| 	go.uber.org/zap v1.21.0 // indirect | ||||
| 	golang.org/x/crypto v0.0.0-20220411220226-7b82a4e95df4 // indirect | ||||
| 	golang.org/x/net v0.0.0-20220520000938-2e3eb7b945c2 // indirect | ||||
| 	golang.org/x/sync v0.0.0-20210220032951-036812b2e83c // indirect | ||||
| 	golang.org/x/sys v0.0.0-20220520151302-bc2c85ada10a // indirect | ||||
| 	golang.org/x/crypto v0.0.0-20220525230936-793ad666bf5e // indirect | ||||
| 	golang.org/x/exp/typeparams v0.0.0-20220613132600-b0d781184e0d // indirect | ||||
| 	golang.org/x/net v0.0.0-20220722155237-a158d28d115b // indirect | ||||
| 	golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4 // indirect | ||||
| 	golang.org/x/sys v0.0.0-20220722155257-8c9f86f7a55f // indirect | ||||
| 	golang.org/x/text v0.3.7 // indirect | ||||
| 	golang.org/x/xerrors v0.0.0-20220517211312-f3a8303e98df // indirect | ||||
| 	google.golang.org/protobuf v1.28.0 // indirect | ||||
| 	gopkg.in/ini.v1 v1.66.4 // indirect | ||||
| 	gopkg.in/ini.v1 v1.66.6 // indirect | ||||
| 	gopkg.in/warnings.v0 v0.1.2 // indirect | ||||
| 	gopkg.in/yaml.v2 v2.4.0 // indirect | ||||
| 	gopkg.in/yaml.v3 v3.0.1 // indirect | ||||
| 	honnef.co/go/tools v0.2.2 // indirect | ||||
| 	honnef.co/go/tools v0.3.3 // indirect | ||||
| 	mvdan.cc/gofumpt v0.3.1 // indirect | ||||
| 	mvdan.cc/interfacer v0.0.0-20180901003855-c20040233aed // indirect | ||||
| 	mvdan.cc/lint v0.0.0-20170908181259-adc824a0674b // indirect | ||||
| 	mvdan.cc/unparam v0.0.0-20211214103731-d0ef000c54e5 // indirect | ||||
| 	mvdan.cc/unparam v0.0.0-20220706161116-678bad134442 // indirect | ||||
| ) | ||||
|   | ||||
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							| @@ -109,5 +109,5 @@ func ExampleMeter_asynchronous_multiple() { | ||||
| 	} | ||||
| } | ||||
|  | ||||
| //This is just an example, see the the contrib runtime instrumentation for real implementation. | ||||
| // This is just an example, see the the contrib runtime instrumentation for real implementation. | ||||
| func computeGCPauses(ctx context.Context, recorder syncfloat64.Histogram, pauseBuff []uint64) {} | ||||
|   | ||||
| @@ -214,7 +214,7 @@ func (i *aiGauge) unwrap() instrument.Asynchronous { | ||||
| 	return nil | ||||
| } | ||||
|  | ||||
| //Sync Instruments. | ||||
| // Sync Instruments. | ||||
| type sfCounter struct { | ||||
| 	name string | ||||
| 	opts []instrument.Option | ||||
|   | ||||
| @@ -76,7 +76,7 @@ func TestLastValueUpdate(t *testing.T) { | ||||
|  | ||||
| 		var last number.Number | ||||
| 		for i := 0; i < count; i++ { | ||||
| 			x := profile.Random(rand.Intn(1)*2 - 1) | ||||
| 			x := profile.Random(rand.Intn(2)*2 - 1) | ||||
| 			last = x | ||||
| 			aggregatortest.CheckedUpdate(t, agg, x, record) | ||||
| 		} | ||||
|   | ||||
| @@ -46,12 +46,12 @@ var ErrControllerStarted = fmt.Errorf("controller already started") | ||||
| // both "pull" and "push" configurations.  This supports two distinct | ||||
| // modes: | ||||
| // | ||||
| // - Push and Pull: Start() must be called to begin calling the exporter; | ||||
| //   Collect() is called periodically by a background thread after starting | ||||
| //   the controller. | ||||
| // - Pull-Only: Start() is optional in this case, to call Collect periodically. | ||||
| //   If Start() is not called, Collect() can be called manually to initiate | ||||
| //   collection | ||||
| //   - Push and Pull: Start() must be called to begin calling the exporter; | ||||
| //     Collect() is called periodically by a background thread after starting | ||||
| //     the controller. | ||||
| //   - Pull-Only: Start() is optional in this case, to call Collect periodically. | ||||
| //     If Start() is not called, Collect() can be called manually to initiate | ||||
| //     collection | ||||
| // | ||||
| // The controller supports mixing push and pull access to metric data | ||||
| // using the export.Reader RWLock interface.  Collection will | ||||
|   | ||||
| @@ -36,7 +36,7 @@ Asynchronous instruments are managed by an internal | ||||
| AsyncInstrumentState, which coordinates calling batch and single | ||||
| instrument callbacks. | ||||
|  | ||||
| Internal Structure | ||||
| # Internal Structure | ||||
|  | ||||
| Each observer also has its own kind of record stored in the SDK. This | ||||
| record contains a set of recorders for every specific attribute set used in | ||||
| @@ -60,7 +60,7 @@ events since its last checkpoint.  Aggregators may be lock-free or they may | ||||
| use locking, but they should expect to be called concurrently.  Aggregators | ||||
| must be capable of merging with another aggregator of the same type. | ||||
|  | ||||
| Export Pipeline | ||||
| # Export Pipeline | ||||
|  | ||||
| While the SDK serves to maintain a current set of records and | ||||
| coordinate collection, the behavior of a metrics export pipeline is | ||||
| @@ -126,6 +126,5 @@ collection.  Either way, the job of the controller is to call the SDK | ||||
| Collect() method, then read the checkpoint, then invoke the exporter. | ||||
| Controllers are expected to implement the public metric.MeterProvider | ||||
| API, meaning they can be installed as the global Meter provider. | ||||
|  | ||||
| */ | ||||
| package metric // import "go.opentelemetry.io/otel/sdk/metric" | ||||
|   | ||||
| @@ -424,9 +424,10 @@ func (n *Number) CompareAndSwapFloat64(of, nf float64) bool { | ||||
|  | ||||
| // CompareNumber compares two Numbers given their kind.  Both numbers | ||||
| // should have the same kind.  This returns: | ||||
| //    0 if the numbers are equal | ||||
| //    -1 if the subject `n` is less than the argument `nn` | ||||
| //    +1 if the subject `n` is greater than the argument `nn` | ||||
| // | ||||
| //	0 if the numbers are equal | ||||
| //	-1 if the subject `n` is less than the argument `nn` | ||||
| //	+1 if the subject `n` is greater than the argument `nn` | ||||
| func (n *Number) CompareNumber(kind Kind, nn Number) int { | ||||
| 	switch kind { | ||||
| 	case Int64Kind: | ||||
|   | ||||
| @@ -118,9 +118,9 @@ func (f testFactory) NewCheckpointer() export.Checkpointer { | ||||
| // NewProcessor returns a new testing Processor implementation. | ||||
| // Verify expected outputs using Values(), e.g.: | ||||
| // | ||||
| //     require.EqualValues(t, map[string]float64{ | ||||
| //         "counter.sum/A=1,B=2/R=V": 100, | ||||
| //     }, processor.Values()) | ||||
| //	require.EqualValues(t, map[string]float64{ | ||||
| //	    "counter.sum/A=1,B=2/R=V": 100, | ||||
| //	}, processor.Values()) | ||||
| // | ||||
| // Where in the example A=1,B=2 is the encoded attributes and R=V is the | ||||
| // encoded resource value. | ||||
| @@ -322,9 +322,9 @@ func (o *Output) AddAccumulation(acc export.Accumulation) error { | ||||
| // New returns a new testing Exporter implementation. | ||||
| // Verify exporter outputs using Values(), e.g.,: | ||||
| // | ||||
| //     require.EqualValues(t, map[string]float64{ | ||||
| //         "counter.sum/A=1,B=2/R=V": 100, | ||||
| //     }, exporter.Values()) | ||||
| //	require.EqualValues(t, map[string]float64{ | ||||
| //	    "counter.sum/A=1,B=2/R=V": 100, | ||||
| //	}, exporter.Values()) | ||||
| // | ||||
| // Where in the example A=1,B=2 is the encoded attributes and R=V is the | ||||
| // encoded resource value. | ||||
|   | ||||
| @@ -28,33 +28,33 @@ collecting high cardinality metric data. | ||||
| For example, to compose a push controller with a reducer and a basic | ||||
| metric processor: | ||||
|  | ||||
| type someFilter struct{ | ||||
|         // configuration for this filter | ||||
|         // ... | ||||
| } | ||||
| 	type someFilter struct{ | ||||
| 	        // configuration for this filter | ||||
| 	        // ... | ||||
| 	} | ||||
|  | ||||
| func (someFilter) AttributeFilterFor(_ *sdkapi.Descriptor) attribute.Filter { | ||||
|         return func(attr kv.KeyValue) bool { | ||||
|                 // return true to keep this attr, false to drop this attr. | ||||
|                 // ... | ||||
|         } | ||||
| } | ||||
| 	func (someFilter) AttributeFilterFor(_ *sdkapi.Descriptor) attribute.Filter { | ||||
| 	        return func(attr kv.KeyValue) bool { | ||||
| 	                // return true to keep this attr, false to drop this attr. | ||||
| 	                // ... | ||||
| 	        } | ||||
| 	} | ||||
|  | ||||
| func setupMetrics(exporter export.Exporter) (stop func()) { | ||||
|         basicProcessorFactory := basic.NewFactory( | ||||
|                 simple.NewWithHistogramDistribution(), | ||||
|                 exporter, | ||||
|         ) | ||||
| 	func setupMetrics(exporter export.Exporter) (stop func()) { | ||||
| 	        basicProcessorFactory := basic.NewFactory( | ||||
| 	                simple.NewWithHistogramDistribution(), | ||||
| 	                exporter, | ||||
| 	        ) | ||||
|  | ||||
|         reducerProcessor := reducer.NewFactory(someFilter{...}, basicProcessorFactory) | ||||
| 	        reducerProcessor := reducer.NewFactory(someFilter{...}, basicProcessorFactory) | ||||
|  | ||||
|         controller := controller.New( | ||||
|                 reducerProcessor, | ||||
|                 exporter, | ||||
|                 opts..., | ||||
|         ) | ||||
|         controller.Start() | ||||
|         global.SetMeterProvider(controller.Provider()) | ||||
|         return controller.Stop | ||||
| 	        controller := controller.New( | ||||
| 	                reducerProcessor, | ||||
| 	                exporter, | ||||
| 	                opts..., | ||||
| 	        ) | ||||
| 	        controller.Start() | ||||
| 	        global.SetMeterProvider(controller.Provider()) | ||||
| 	        return controller.Stop | ||||
| */ | ||||
| package reducer // import "go.opentelemetry.io/otel/sdk/metric/processor/reducer" | ||||
|   | ||||
| @@ -44,8 +44,9 @@ func (rm *refcountMapped) unref() { | ||||
|  | ||||
| // tryUnmap flips the mapped bit to "unmapped" state and returns true if both of the | ||||
| // following conditions are true upon entry to this function: | ||||
| //  * There are no active references; | ||||
| //  * The mapped bit is in "mapped" state. | ||||
| //   - There are no active references; | ||||
| //   - The mapped bit is in "mapped" state. | ||||
| // | ||||
| // Otherwise no changes are done to mapped bit and false is returned. | ||||
| func (rm *refcountMapped) tryUnmap() bool { | ||||
| 	if atomic.LoadInt64(&rm.value) != 0 { | ||||
|   | ||||
| @@ -90,10 +90,10 @@ var _ trace.TracerProvider = &TracerProvider{} | ||||
| // NewTracerProvider returns a new and configured TracerProvider. | ||||
| // | ||||
| // By default the returned TracerProvider is configured with: | ||||
| //  - a ParentBased(AlwaysSample) Sampler | ||||
| //  - a random number IDGenerator | ||||
| //  - the resource.Default() Resource | ||||
| //  - the default SpanLimits. | ||||
| //   - a ParentBased(AlwaysSample) Sampler | ||||
| //   - a random number IDGenerator | ||||
| //   - the resource.Default() Resource | ||||
| //   - the default SpanLimits. | ||||
| // | ||||
| // The passed opts are used to override these default values and configure the | ||||
| // returned TracerProvider appropriately. | ||||
| @@ -162,16 +162,16 @@ func (p *TracerProvider) Tracer(name string, opts ...trace.TracerOption) trace.T | ||||
| func (p *TracerProvider) RegisterSpanProcessor(s SpanProcessor) { | ||||
| 	p.mu.Lock() | ||||
| 	defer p.mu.Unlock() | ||||
| 	new := spanProcessorStates{} | ||||
| 	newSPS := spanProcessorStates{} | ||||
| 	if old, ok := p.spanProcessors.Load().(spanProcessorStates); ok { | ||||
| 		new = append(new, old...) | ||||
| 		newSPS = append(newSPS, old...) | ||||
| 	} | ||||
| 	newSpanSync := &spanProcessorState{ | ||||
| 		sp:    s, | ||||
| 		state: &sync.Once{}, | ||||
| 	} | ||||
| 	new = append(new, newSpanSync) | ||||
| 	p.spanProcessors.Store(new) | ||||
| 	newSPS = append(newSPS, newSpanSync) | ||||
| 	p.spanProcessors.Store(newSPS) | ||||
| } | ||||
|  | ||||
| // UnregisterSpanProcessor removes the given SpanProcessor from the list of SpanProcessors. | ||||
|   | ||||
| @@ -102,6 +102,7 @@ func (ts traceIDRatioSampler) Description() string { | ||||
| // always sample. Fractions < 0 are treated as zero. To respect the | ||||
| // parent trace's `SampledFlag`, the `TraceIDRatioBased` sampler should be used | ||||
| // as a delegate of a `Parent` sampler. | ||||
| // | ||||
| //nolint:revive // revive complains about stutter of `trace.TraceIDRatioBased` | ||||
| func TraceIDRatioBased(fraction float64) Sampler { | ||||
| 	if fraction >= 1 { | ||||
|   | ||||
| @@ -180,9 +180,10 @@ func TestParentBasedDefaultDescription(t *testing.T) { | ||||
| } | ||||
|  | ||||
| // TraceIDRatioBased sampler requirements state | ||||
| //  "A TraceIDRatioBased sampler with a given sampling rate MUST also sample | ||||
| //   all traces that any TraceIDRatioBased sampler with a lower sampling rate | ||||
| //   would sample." | ||||
| // | ||||
| //	"A TraceIDRatioBased sampler with a given sampling rate MUST also sample | ||||
| //	 all traces that any TraceIDRatioBased sampler with a lower sampling rate | ||||
| //	 would sample." | ||||
| func TestTraceIdRatioSamplesInclusively(t *testing.T) { | ||||
| 	const ( | ||||
| 		numSamplers = 1000 | ||||
|   | ||||
							
								
								
									
										7
									
								
								trace.go
									
									
									
									
									
								
							
							
						
						
									
										7
									
								
								trace.go
									
									
									
									
									
								
							| @@ -31,9 +31,12 @@ func Tracer(name string, opts ...trace.TracerOption) trace.Tracer { | ||||
| // If none is registered then an instance of NoopTracerProvider is returned. | ||||
| // | ||||
| // Use the trace provider to create a named tracer. E.g. | ||||
| //     tracer := otel.GetTracerProvider().Tracer("example.com/foo") | ||||
| // | ||||
| //	tracer := otel.GetTracerProvider().Tracer("example.com/foo") | ||||
| // | ||||
| // or | ||||
| //     tracer := otel.Tracer("example.com/foo") | ||||
| // | ||||
| //	tracer := otel.Tracer("example.com/foo") | ||||
| func GetTracerProvider() trace.TracerProvider { | ||||
| 	return global.TracerProvider() | ||||
| } | ||||
|   | ||||
| @@ -386,16 +386,16 @@ type Span interface { | ||||
| // | ||||
| // For example, a Link is used in the following situations: | ||||
| // | ||||
| //   1. Batch Processing: A batch of operations may contain operations | ||||
| //      associated with one or more traces/spans. Since there can only be one | ||||
| //      parent SpanContext, a Link is used to keep reference to the | ||||
| //      SpanContext of all operations in the batch. | ||||
| //   2. Public Endpoint: A SpanContext for an in incoming client request on a | ||||
| //      public endpoint should be considered untrusted. In such a case, a new | ||||
| //      trace with its own identity and sampling decision needs to be created, | ||||
| //      but this new trace needs to be related to the original trace in some | ||||
| //      form. A Link is used to keep reference to the original SpanContext and | ||||
| //      track the relationship. | ||||
| //  1. Batch Processing: A batch of operations may contain operations | ||||
| //     associated with one or more traces/spans. Since there can only be one | ||||
| //     parent SpanContext, a Link is used to keep reference to the | ||||
| //     SpanContext of all operations in the batch. | ||||
| //  2. Public Endpoint: A SpanContext for an in incoming client request on a | ||||
| //     public endpoint should be considered untrusted. In such a case, a new | ||||
| //     trace with its own identity and sampling decision needs to be created, | ||||
| //     but this new trace needs to be related to the original trace in some | ||||
| //     form. A Link is used to keep reference to the original SpanContext and | ||||
| //     track the relationship. | ||||
| type Link struct { | ||||
| 	// SpanContext of the linked Span. | ||||
| 	SpanContext SpanContext | ||||
|   | ||||
		Reference in New Issue
	
	Block a user