diff --git a/Makefile b/Makefile index 5a4522fae9a..913d1b09cc8 100644 --- a/Makefile +++ b/Makefile @@ -7,6 +7,7 @@ ALL_SRC := $(shell find . -name '*.go' \ -not -path '*/internal/data/opentelemetry-proto-gen/*' \ -not -path './.circleci/scripts/reportgenerator/*' \ -not -path './examples/demo/app/*' \ + -not -path './test/*' \ -type f | sort) # ALL_PKGS is the list of all packages where ALL_SRC files reside. @@ -31,6 +32,7 @@ STATIC_CHECK=staticcheck # BUILD_TYPE should be one of (dev, release). BUILD_TYPE?=release + GIT_SHA=$(shell git rev-parse --short HEAD) BUILD_INFO_IMPORT_PATH=go.opentelemetry.io/collector/internal/version BUILD_X1=-X $(BUILD_INFO_IMPORT_PATH).GitHash=$(GIT_SHA) @@ -49,6 +51,8 @@ all-srcs: all-pkgs: @echo $(ALL_PKGS) | tr ' ' '\n' | sort +all-env: + @printenv .DEFAULT_GOAL := all @@ -156,7 +160,7 @@ install-tools: .PHONY: otelcol otelcol: - GO111MODULE=on CGO_ENABLED=0 go build -o ./bin/otelcol_$(GOOS)_$(GOARCH)$(EXTENSION) $(BUILD_INFO) ./cmd/otelcol + GO111MODULE=on CGO_ENABLED=0 go build -o ~/pipeline_custom/otelcol_$(GOOS)_$(GOARCH)$(EXTENSION) $(BUILD_INFO) ./cmd/otelcol .PHONY: run run: @@ -296,3 +300,15 @@ check-contrib: make -C $(CONTRIB_PATH) test @echo Restoring contrib to no longer use this core checkout make -C $(CONTRIB_PATH) for-all CMD="go mod edit -dropreplace go.opentelemetry.io/collector" + +.PHONY: testaps +testaps: otelcol run-colletor-to-aps send-load + +.PHONY: run-colletor-to-aps +run-colletor-to-aps: + GO111MODULE=on go run --race ./cmd/otelcol/... --config ./test/otel-collector-config.yaml & + +.PHONY: send-load +send-load: + @echo Starting OTLP load generator + go run ./test/otlploadgenerator/*.go \ No newline at end of file diff --git a/README.md b/README.md index 5a902834a96..7ddf789ee7d 100644 --- a/README.md +++ b/README.md @@ -1,85 +1,85 @@ ---- - -

- - Getting Started -   •   - Getting Involved -   •   - Getting In Touch - -

- -

- - Go Report Card - - - Build Status - - - Codecov Status - - - GitHub release (latest by date including pre-releases) - - Beta -

- -

- - Contributing -   •   - Vision -   •   - Design -   •   - Monitoring -   •   - Performance -   •   - Roadmap - -

- ---- - - -### OpenTelemetry Collector - -The OpenTelemetry Collector offers a vendor-agnostic implementation on how to receive, process, and export telemetry data. In addition, it removes the need to run, operate, and maintain multiple agents/collectors in order to support open-source telemetry data formats (e.g. Jaeger, Prometheus, etc.) sending to multiple open-source or commercial back-ends. - -Objectives: - -- Usable: Reasonable default configuration, supports popular protocols, runs and collects out of the box. -- Performant: Highly stable and performant under varying loads and configurations. -- Observable: An exemplar of an observable service. -- Extensible: Customizable without touching the core code. -- Unified: Single codebase, deployable as an agent or collector with support for traces, metrics, and logs (future). - -### Community Roles - -Triagers ([@open-telemetry/collector-triagers](https://github.com/orgs/open-telemetry/teams/collector-triager)) -- [Jay Camp](https://github.com/jrcamp), Splunk -- [Steve Flanders](https://github.com/flands), Splunk - -Approvers ([@open-telemetry/collector-approvers](https://github.com/orgs/open-telemetry/teams/collector-approvers)): - -- [Dmitrii Anoshin](https://github.com/dmitryax), Splunk -- [James Bebbington](https://github.com/james-bebbington), Google -- [Nail Islamov](https://github.com/nilebox), Google -- [Owais Lone](https://github.com/owais), Splunk - -Maintainers ([@open-telemetry/collector-maintainers](https://github.com/orgs/open-telemetry/teams/collector-maintainers)): - -- [Bogdan Drutu](https://github.com/BogdanDrutu), Splunk -- [Paulo Janotti](https://github.com/pjanotti), Splunk -- [Tigran Najaryan](https://github.com/tigrannajaryan), Splunk - -Learn more about roles in the [community repository](https://github.com/open-telemetry/community/blob/master/community-membership.md). - -Thanks to all the people who already contributed! - - - - +# OpenTelemetry Collector O11y + +This repository is focused on building and packaging the OpenTelemetry Collector with a Prometheus remote write exporter + supporting Sig V4 to export to AWS services. See [Testing](#testing) section on how to generate and send a OTLP metric + load to a + Prometheus remote write backend. + +## Components + +Most upstream components are removed and not included in the build. Available components are: + +* Receiver: OpenTelemetry Protocol(OTLP) receiver +* Processor: None +* Exporter: Logging exporter, Prometheus remote write exporter + +A Collector pipeline with these components is illustrated below: + +![Image: Repo README.png](./img/Pipeline.png) + + +## Initialization + +Components in the collector are initialized by the Collector Service based on configuration. The factory and +configuration of a component are invoked at the initialization of the Collector Application, and they supply the +components with parameters components need. AWS Sig V4 support could be passed to the exporter by the factory without +impacting the data conversion and export logic. + +The Prometheus remote write exporter use this pattern. During application initialization, the collector asks exporter +builders, a service package component, for an implementation of the MetricExporter interface. Then, the exporter builder + invokes the factory code inside the Prometheus Remote Write Exporter package to create an instance of the Prometheus + Remote Write Exporter. When invoked, factory uses the exporter helper package to wrap the Exporter implementation + inside the MetricExporter interface, and returns the instance to the Collector Application. **The factory can also + pass in an [Sig V4 interceptor-attached http.Client](https://github.com/open-o11y/opentelemetry-collector/blob/d21a840612d40d935ccd52142f06e7106ee82384/exporter/prometheusremotewriteexporter/factory.go#L181) + to the exporter**. Finally, the Collector Application + assembles the export pipeline with the exporter. During an export operation, the exporter behaves the same, but the + interceptor-attached http.Client performs signing of each request. + +![Image: Class Diagram(2).png](./img/ClassDiagram.png) + +## Sample Configuration + +The following is a configuration for a Collector instance that receives gRPC OTLP metrics on `localhost:55680`, a +logging exporter that logs metric to `stdout`, and a Prometheus remote write exporter sending to an endpoint with AWS +Sig V4 support enabled. + +``` +receivers: + otlp: + protocols: + grpc: +exporters: + prometheusremotewrite: + endpoint: "https://aps-workspaces-beta.us-west-2.amazonaws.com/workspaces/yang-yu-intern-test-ws/remote_write" + namespace: otel-collector + auth: + region: "us-west-2" + service: "aps" + timeout: 10s + logging: + loglevel: debug + +service: + extensions: + pipelines: + metrics: + receivers: [otlp] + exporters: [logging,prometheusremotewrite] +``` + +see a complete list of configuration options and explanation of the prometheus remote write exporter [here](./exporter/prometheusremotewriteexporter/README.md) + +## Testing + +To test the exporter, run the following command: + +``` +make testaps +``` + +This starts a Collector based on configuration in `/test/otel-config.yaml` and runs OTLP metric load generator to send +metrics to the exporter. OTLP metrics are generated based on `/test/otlploadgenerator/data.txt`. After the load generator exists, + it runs a querier to get metrics from the specified endpoint and write the output in `/test/querier/ans.txt`. + +More details of testing, load generator and querier are described [here](./test/README.md). + diff --git a/consumer/pdatautil/pdatautil.go b/consumer/pdatautil/pdatautil.go index 2f25f93d207..09cbdc6c28c 100644 --- a/consumer/pdatautil/pdatautil.go +++ b/consumer/pdatautil/pdatautil.go @@ -136,7 +136,6 @@ func CloneMetricsDataOld(md consumerdata.MetricsData) consumerdata.MetricsData { clone.Metrics = append(clone.Metrics, metricClone) } } - return clone } diff --git a/data.txt b/data.txt new file mode 100644 index 00000000000..8a216c7a46a --- /dev/null +++ b/data.txt @@ -0,0 +1,1000 @@ +metricName0,gauge,label1 value1 label2 value2 label3 value3 label4 value4 ,1847 +metricName1,summary,label1 value1 label2 value2 ,1318 4425 0.156519 0.096970 0.300912 +metricName2,histogram,label1 value1 label2 value2 label3 value3 label4 value4 ,3274 7979 3162 89 4728 +metricName3,summary,label1 value1 label2 value2 ,3237 4106 0.203187 0.360871 0.570673 +metricName4,histogram,label1 value1 label2 value2 label3 value3 label4 value4 ,2790 11122 4947 3287 2888 +metricName5,summary,label1 value1 label2 value2 ,408 2387 0.607253 0.975242 0.079454 +metricName6,gauge,label1 value1 label2 value2 label3 value3 label4 value4 ,1485 +metricName7,histogram,label1 value1 label2 value2 ,2433 3847 3090 194 563 +metricName8,summary,label1 value1 label2 value2 label3 value3 ,4324 1159 0.361805 0.880543 0.297112 +metricName9,gauge,label1 value1 label2 value2 label3 value3 label4 value4 ,3000 +metricName10,gauge,label1 value1 ,4538 +metricName11,summary,label1 value1 label2 value2 label3 value3 label4 value4 ,2451 3510 0.801055 0.730231 0.182925 +metricName12,counter,label1 value1 label2 value2 ,2202 +metricName13,summary,label1 value1 label2 value2 label3 value3 ,1563 4376 0.926987 0.954945 0.347954 +metricName14,histogram,label1 value1 label2 value2 ,3623 6879 2463 2996 1420 +metricName15,gauge,label1 value1 label2 value2 ,3133 +metricName16,gauge,label1 value1 label2 value2 label3 value3 label4 value4 ,3033 +metricName17,summary,label1 value1 label2 value2 label3 value3 label4 value4 ,2002 3878 0.369693 0.236823 0.535282 +metricName18,counter,label1 value1 label2 value2 label3 value3 label4 value4 ,552 +metricName19,summary,label1 value1 label2 value2 ,1598 2425 0.625095 0.550147 0.623609 +metricName20,summary,label1 value1 label2 value2 label3 value3 ,3410 285 0.399984 0.497868 0.603978 +metricName21,gauge,label1 value1 label2 value2 label3 value3 label4 value4 ,3582 +metricName22,counter,label1 value1 label2 value2 ,4267 +metricName23,gauge,label1 value1 label2 value2 label3 value3 label4 value4 ,894 +metricName24,histogram,label1 value1 label2 value2 label3 value3 ,1270 8126 3981 2079 2066 +metricName25,gauge,label1 value1 label2 value2 label3 value3 ,4819 +metricName26,gauge,label1 value1 ,2175 +metricName27,gauge,label1 value1 label2 value2 label3 value3 ,1387 +metricName28,gauge,label1 value1 ,2818 +metricName29,counter,label1 value1 label2 value2 label3 value3 label4 value4 ,1224 +metricName30,summary,label1 value1 ,1532 3616 0.392216 0.589383 0.929612 +metricName31,summary,label1 value1 ,3640 2351 0.491607 0.957954 0.797209 +metricName32,summary,label1 value1 label2 value2 ,90 1602 0.190033 0.739826 0.654041 +metricName33,histogram,label1 value1 label2 value2 label3 value3 ,4208 6387 2822 1223 2342 +metricName34,summary,label1 value1 ,1166 3710 0.570852 0.512782 0.684175 +metricName35,histogram,label1 value1 label2 value2 ,3430 11825 4415 4371 3039 +metricName36,gauge,label1 value1 ,1359 +metricName37,counter,label1 value1 label2 value2 label3 value3 label4 value4 ,870 +metricName38,counter,label1 value1 label2 value2 label3 value3 label4 value4 ,3010 +metricName39,gauge,label1 value1 label2 value2 label3 value3 ,1829 +metricName40,counter,label1 value1 ,1756 +metricName41,summary,label1 value1 label2 value2 label3 value3 ,1200 4456 0.780754 0.092118 0.053495 +metricName42,gauge,label1 value1 label2 value2 label3 value3 ,320 +metricName43,summary,label1 value1 label2 value2 label3 value3 ,3447 292 0.092970 0.645833 0.311886 +metricName44,counter,label1 value1 label2 value2 label3 value3 ,3756 +metricName45,summary,label1 value1 label2 value2 label3 value3 label4 value4 ,1157 3652 0.319331 0.499386 0.400432 +metricName46,summary,label1 value1 label2 value2 ,1393 3470 0.887447 0.236327 0.765008 +metricName47,counter,label1 value1 ,3922 +metricName48,gauge,label1 value1 label2 value2 ,60 +metricName49,counter,label1 value1 label2 value2 label3 value3 label4 value4 ,2954 +metricName50,counter,label1 value1 ,4551 +metricName51,gauge,label1 value1 label2 value2 ,4516 +metricName52,counter,label1 value1 label2 value2 label3 value3 label4 value4 ,4637 +metricName53,gauge,label1 value1 label2 value2 ,2804 +metricName54,gauge,label1 value1 label2 value2 ,1215 +metricName55,summary,label1 value1 label2 value2 label3 value3 ,1040 3662 0.310510 0.184391 0.967094 +metricName56,gauge,label1 value1 label2 value2 label3 value3 label4 value4 ,1443 +metricName57,gauge,label1 value1 label2 value2 label3 value3 ,574 +metricName58,gauge,label1 value1 label2 value2 label3 value3 ,1336 +metricName59,histogram,label1 value1 ,1237 6113 1544 2395 2174 +metricName60,counter,label1 value1 label2 value2 ,1606 +metricName61,counter,label1 value1 ,2420 +metricName62,histogram,label1 value1 label2 value2 label3 value3 label4 value4 ,3682 4533 1117 3151 265 +metricName63,summary,label1 value1 ,129 4231 0.791125 0.262382 0.346864 +metricName64,summary,label1 value1 label2 value2 ,166 4859 0.578351 0.413581 0.119851 +metricName65,counter,label1 value1 label2 value2 ,1774 +metricName66,counter,label1 value1 label2 value2 label3 value3 label4 value4 ,1874 +metricName67,histogram,label1 value1 label2 value2 ,4658 7867 2286 4467 1114 +metricName68,summary,label1 value1 label2 value2 label3 value3 ,4723 1724 0.953259 0.809874 0.181591 +metricName69,summary,label1 value1 label2 value2 label3 value3 label4 value4 ,3146 4983 0.710744 0.273495 0.407633 +metricName70,gauge,label1 value1 ,36 +metricName71,summary,label1 value1 label2 value2 ,2762 1789 0.315362 0.951906 0.751563 +metricName72,gauge,label1 value1 ,4159 +metricName73,gauge,label1 value1 label2 value2 label3 value3 ,2418 +metricName74,gauge,label1 value1 label2 value2 label3 value3 label4 value4 ,2653 +metricName75,counter,label1 value1 ,4081 +metricName76,gauge,label1 value1 ,1509 +metricName77,histogram,label1 value1 ,3477 8109 2695 580 4834 +metricName78,summary,label1 value1 label2 value2 label3 value3 ,2175 4993 0.926411 0.170946 0.303887 +metricName79,gauge,label1 value1 label2 value2 label3 value3 ,2884 +metricName80,histogram,label1 value1 label2 value2 label3 value3 label4 value4 ,4253 9807 3162 4673 1972 +metricName81,histogram,label1 value1 label2 value2 label3 value3 label4 value4 ,4731 1057 496 48 513 +metricName82,histogram,label1 value1 label2 value2 label3 value3 ,2677 9603 3740 3531 2332 +metricName83,histogram,label1 value1 label2 value2 label3 value3 ,4187 10499 3483 4330 2686 +metricName84,histogram,label1 value1 ,3956 10012 3421 3193 3398 +metricName85,gauge,label1 value1 label2 value2 label3 value3 ,45 +metricName86,histogram,label1 value1 label2 value2 label3 value3 ,2044 9443 3999 4024 1420 +metricName87,summary,label1 value1 label2 value2 label3 value3 label4 value4 ,2124 3357 0.765589 0.248182 0.455444 +metricName88,counter,label1 value1 label2 value2 ,814 +metricName89,gauge,label1 value1 label2 value2 label3 value3 label4 value4 ,1581 +metricName90,summary,label1 value1 label2 value2 label3 value3 label4 value4 ,1985 629 0.245792 0.967505 0.536981 +metricName91,counter,label1 value1 label2 value2 label3 value3 label4 value4 ,4377 +metricName92,histogram,label1 value1 label2 value2 ,3780 10583 3017 4759 2807 +metricName93,gauge,label1 value1 label2 value2 label3 value3 ,2474 +metricName94,counter,label1 value1 label2 value2 label3 value3 label4 value4 ,894 +metricName95,histogram,label1 value1 label2 value2 ,395 6214 2574 3610 30 +metricName96,histogram,label1 value1 label2 value2 label3 value3 label4 value4 ,645 7836 2650 909 4277 +metricName97,summary,label1 value1 ,3198 2734 0.845035 0.293284 0.778304 +metricName98,summary,label1 value1 label2 value2 label3 value3 ,10 3921 0.001412 0.565867 0.887792 +metricName99,counter,label1 value1 ,3374 +metricName100,gauge,label1 value1 ,3973 +metricName101,counter,label1 value1 label2 value2 label3 value3 ,75 +metricName102,histogram,label1 value1 ,325 8086 2913 214 4959 +metricName103,histogram,label1 value1 label2 value2 ,1487 4743 1244 2063 1436 +metricName104,counter,label1 value1 label2 value2 label3 value3 label4 value4 ,1925 +metricName105,histogram,label1 value1 label2 value2 label3 value3 label4 value4 ,3176 11044 4200 3114 3730 +metricName106,counter,label1 value1 label2 value2 label3 value3 label4 value4 ,4434 +metricName107,summary,label1 value1 label2 value2 label3 value3 ,913 2045 0.452204 0.226510 0.389056 +metricName108,histogram,label1 value1 label2 value2 ,4485 7025 1574 701 4750 +metricName109,counter,label1 value1 ,4560 +metricName110,counter,label1 value1 label2 value2 label3 value3 label4 value4 ,1582 +metricName111,counter,label1 value1 label2 value2 ,2516 +metricName112,histogram,label1 value1 label2 value2 ,1217 12795 4555 4277 3963 +metricName113,histogram,label1 value1 ,3740 9387 2179 3875 3333 +metricName114,summary,label1 value1 label2 value2 label3 value3 ,1552 3928 0.334818 0.523107 0.348580 +metricName115,counter,label1 value1 label2 value2 label3 value3 ,1009 +metricName116,counter,label1 value1 ,1314 +metricName117,gauge,label1 value1 label2 value2 label3 value3 label4 value4 ,2442 +metricName118,counter,label1 value1 label2 value2 label3 value3 label4 value4 ,1730 +metricName119,summary,label1 value1 label2 value2 ,3360 894 0.110490 0.346799 0.380984 +metricName120,gauge,label1 value1 ,1757 +metricName121,counter,label1 value1 label2 value2 label3 value3 ,4283 +metricName122,gauge,label1 value1 label2 value2 label3 value3 ,1315 +metricName123,counter,label1 value1 ,342 +metricName124,summary,label1 value1 label2 value2 label3 value3 ,3401 707 0.612437 0.022463 0.096493 +metricName125,counter,label1 value1 label2 value2 label3 value3 label4 value4 ,3755 +metricName126,gauge,label1 value1 ,2694 +metricName127,histogram,label1 value1 label2 value2 label3 value3 ,2370 9713 2417 3882 3414 +metricName128,histogram,label1 value1 ,3825 10198 4476 1526 4196 +metricName129,counter,label1 value1 label2 value2 label3 value3 ,2243 +metricName130,summary,label1 value1 label2 value2 ,2713 3709 0.271577 0.649651 0.255871 +metricName131,histogram,label1 value1 label2 value2 ,4401 11873 4490 3798 3585 +metricName132,histogram,label1 value1 label2 value2 label3 value3 ,4681 3942 392 2735 815 +metricName133,counter,label1 value1 ,617 +metricName134,histogram,label1 value1 label2 value2 label3 value3 label4 value4 ,3460 4785 573 1051 3161 +metricName135,counter,label1 value1 ,4214 +metricName136,histogram,label1 value1 label2 value2 label3 value3 label4 value4 ,3040 11233 4135 2748 4350 +metricName137,counter,label1 value1 label2 value2 label3 value3 ,4666 +metricName138,summary,label1 value1 ,3794 2510 0.052763 0.178146 0.382093 +metricName139,histogram,label1 value1 ,1898 5009 3834 1013 162 +metricName140,gauge,label1 value1 label2 value2 ,1840 +metricName141,gauge,label1 value1 label2 value2 label3 value3 ,2601 +metricName142,histogram,label1 value1 ,817 7390 3571 3577 242 +metricName143,summary,label1 value1 ,2150 4907 0.655417 0.414351 0.259323 +metricName144,counter,label1 value1 label2 value2 label3 value3 ,1904 +metricName145,histogram,label1 value1 ,453 8096 1775 3114 3207 +metricName146,gauge,label1 value1 label2 value2 ,3201 +metricName147,summary,label1 value1 label2 value2 label3 value3 ,3045 4227 0.498237 0.162724 0.944086 +metricName148,summary,label1 value1 label2 value2 label3 value3 label4 value4 ,943 340 0.254205 0.615485 0.204328 +metricName149,summary,label1 value1 ,1778 1281 0.860608 0.783551 0.833797 +metricName150,gauge,label1 value1 label2 value2 label3 value3 label4 value4 ,1648 +metricName151,histogram,label1 value1 label2 value2 ,836 7151 1836 1955 3360 +metricName152,histogram,label1 value1 label2 value2 label3 value3 label4 value4 ,779 6941 1128 2201 3612 +metricName153,summary,label1 value1 label2 value2 label3 value3 label4 value4 ,3787 1532 0.513965 0.185761 0.012481 +metricName154,histogram,label1 value1 label2 value2 ,2808 10149 4801 1501 3847 +metricName155,summary,label1 value1 label2 value2 label3 value3 label4 value4 ,2414 1096 0.540622 0.541541 0.638555 +metricName156,gauge,label1 value1 ,1192 +metricName157,histogram,label1 value1 label2 value2 label3 value3 label4 value4 ,1608 3419 197 144 3078 +metricName158,summary,label1 value1 label2 value2 label3 value3 label4 value4 ,3454 2352 0.656274 0.842902 0.099331 +metricName159,counter,label1 value1 ,3780 +metricName160,gauge,label1 value1 label2 value2 label3 value3 label4 value4 ,2641 +metricName161,histogram,label1 value1 label2 value2 label3 value3 label4 value4 ,2044 10758 2636 4338 3784 +metricName162,gauge,label1 value1 label2 value2 label3 value3 ,2523 +metricName163,histogram,label1 value1 label2 value2 label3 value3 label4 value4 ,2107 6076 1362 2635 2079 +metricName164,counter,label1 value1 label2 value2 label3 value3 ,3495 +metricName165,counter,label1 value1 label2 value2 label3 value3 ,989 +metricName166,counter,label1 value1 label2 value2 ,2915 +metricName167,histogram,label1 value1 ,3804 5712 920 4289 503 +metricName168,counter,label1 value1 ,1879 +metricName169,summary,label1 value1 label2 value2 label3 value3 label4 value4 ,1385 2198 0.826261 0.629588 0.161215 +metricName170,summary,label1 value1 ,3332 4962 0.467596 0.741298 0.502597 +metricName171,histogram,label1 value1 label2 value2 ,2356 8013 3788 809 3416 +metricName172,summary,label1 value1 ,4208 4244 0.750387 0.476966 0.860784 +metricName173,gauge,label1 value1 label2 value2 ,344 +metricName174,gauge,label1 value1 ,1806 +metricName175,summary,label1 value1 label2 value2 label3 value3 label4 value4 ,2378 4191 0.268431 0.041321 0.648045 +metricName176,histogram,label1 value1 ,1411 4231 1536 1312 1383 +metricName177,summary,label1 value1 label2 value2 label3 value3 label4 value4 ,3799 3158 0.222980 0.644637 0.517682 +metricName178,counter,label1 value1 label2 value2 ,296 +metricName179,counter,label1 value1 label2 value2 ,3816 +metricName180,gauge,label1 value1 label2 value2 label3 value3 ,2777 +metricName181,summary,label1 value1 label2 value2 label3 value3 ,4661 3784 0.750951 0.725276 0.328914 +metricName182,summary,label1 value1 ,2650 1762 0.603617 0.962712 0.123267 +metricName183,gauge,label1 value1 ,1673 +metricName184,gauge,label1 value1 label2 value2 label3 value3 label4 value4 ,2181 +metricName185,histogram,label1 value1 label2 value2 ,3135 9506 2464 3676 3366 +metricName186,gauge,label1 value1 label2 value2 ,4105 +metricName187,summary,label1 value1 label2 value2 ,763 204 0.038934 0.130853 0.708602 +metricName188,counter,label1 value1 label2 value2 label3 value3 ,203 +metricName189,histogram,label1 value1 label2 value2 label3 value3 label4 value4 ,3498 8383 1907 2672 3804 +metricName190,summary,label1 value1 label2 value2 ,2337 3472 0.974318 0.534744 0.748552 +metricName191,histogram,label1 value1 label2 value2 ,3650 9268 4118 2892 2258 +metricName192,counter,label1 value1 label2 value2 label3 value3 ,817 +metricName193,gauge,label1 value1 label2 value2 ,4269 +metricName194,summary,label1 value1 label2 value2 label3 value3 ,4952 3171 0.506672 0.444025 0.244141 +metricName195,summary,label1 value1 ,2146 3118 0.982116 0.244177 0.999542 +metricName196,histogram,label1 value1 label2 value2 ,1848 4868 1274 3521 73 +metricName197,histogram,label1 value1 ,4491 7077 354 3963 2760 +metricName198,summary,label1 value1 ,3097 999 0.122316 0.481311 0.100887 +metricName199,summary,label1 value1 label2 value2 label3 value3 ,1830 2057 0.620687 0.519344 0.309882 +metricName200,summary,label1 value1 ,3228 3882 0.640563 0.501779 0.602722 +metricName201,gauge,label1 value1 ,3225 +metricName202,counter,label1 value1 label2 value2 label3 value3 label4 value4 ,1015 +metricName203,counter,label1 value1 label2 value2 ,2694 +metricName204,gauge,label1 value1 label2 value2 ,4764 +metricName205,histogram,label1 value1 label2 value2 label3 value3 ,4444 7648 590 3237 3821 +metricName206,summary,label1 value1 label2 value2 ,1224 1011 0.892230 0.119343 0.169927 +metricName207,histogram,label1 value1 label2 value2 label3 value3 ,1185 7102 4470 570 2062 +metricName208,gauge,label1 value1 label2 value2 label3 value3 label4 value4 ,4822 +metricName209,summary,label1 value1 label2 value2 ,1964 82 0.984058 0.516642 0.114904 +metricName210,summary,label1 value1 label2 value2 ,2785 4984 0.137332 0.268594 0.943485 +metricName211,counter,label1 value1 ,2972 +metricName212,counter,label1 value1 label2 value2 label3 value3 ,4698 +metricName213,gauge,label1 value1 label2 value2 ,3145 +metricName214,histogram,label1 value1 label2 value2 label3 value3 ,4291 10834 1805 4775 4254 +metricName215,summary,label1 value1 label2 value2 label3 value3 ,395 2916 0.598291 0.136314 0.592553 +metricName216,summary,label1 value1 label2 value2 label3 value3 label4 value4 ,1203 2017 0.919319 0.406887 0.002251 +metricName217,counter,label1 value1 label2 value2 ,4882 +metricName218,gauge,label1 value1 ,4003 +metricName219,gauge,label1 value1 label2 value2 label3 value3 ,2603 +metricName220,counter,label1 value1 label2 value2 ,2722 +metricName221,histogram,label1 value1 ,2487 10668 3599 2588 4481 +metricName222,histogram,label1 value1 ,4565 9607 4006 1134 4467 +metricName223,gauge,label1 value1 label2 value2 label3 value3 ,3466 +metricName224,counter,label1 value1 label2 value2 label3 value3 label4 value4 ,942 +metricName225,summary,label1 value1 label2 value2 label3 value3 label4 value4 ,4086 4455 0.533531 0.822773 0.838115 +metricName226,gauge,label1 value1 ,660 +metricName227,summary,label1 value1 label2 value2 label3 value3 label4 value4 ,2316 4912 0.701503 0.890558 0.561613 +metricName228,gauge,label1 value1 label2 value2 label3 value3 ,2083 +metricName229,histogram,label1 value1 label2 value2 ,2359 6424 2269 784 3371 +metricName230,gauge,label1 value1 label2 value2 label3 value3 ,555 +metricName231,summary,label1 value1 label2 value2 ,4574 1283 0.221290 0.195333 0.683089 +metricName232,gauge,label1 value1 label2 value2 ,2 +metricName233,gauge,label1 value1 ,374 +metricName234,counter,label1 value1 label2 value2 label3 value3 label4 value4 ,2287 +metricName235,summary,label1 value1 ,3341 2865 0.828106 0.381027 0.775098 +metricName236,histogram,label1 value1 label2 value2 label3 value3 ,3939 4530 2452 1856 222 +metricName237,summary,label1 value1 ,4187 343 0.592903 0.390352 0.039729 +metricName238,histogram,label1 value1 label2 value2 label3 value3 label4 value4 ,3501 3462 134 1062 2266 +metricName239,gauge,label1 value1 label2 value2 label3 value3 ,3115 +metricName240,counter,label1 value1 ,3722 +metricName241,counter,label1 value1 label2 value2 label3 value3 label4 value4 ,1956 +metricName242,summary,label1 value1 label2 value2 label3 value3 label4 value4 ,3702 4444 0.327027 0.185250 0.663989 +metricName243,counter,label1 value1 label2 value2 label3 value3 ,932 +metricName244,counter,label1 value1 label2 value2 ,2964 +metricName245,counter,label1 value1 ,1831 +metricName246,gauge,label1 value1 label2 value2 label3 value3 label4 value4 ,3526 +metricName247,gauge,label1 value1 label2 value2 label3 value3 ,966 +metricName248,histogram,label1 value1 label2 value2 label3 value3 ,521 9723 4087 2879 2757 +metricName249,gauge,label1 value1 label2 value2 label3 value3 ,4409 +metricName250,histogram,label1 value1 label2 value2 ,3019 3493 1188 1747 558 +metricName251,counter,label1 value1 ,905 +metricName252,counter,label1 value1 label2 value2 label3 value3 label4 value4 ,541 +metricName253,summary,label1 value1 label2 value2 label3 value3 ,2453 2866 0.425865 0.497961 0.816406 +metricName254,counter,label1 value1 label2 value2 ,4586 +metricName255,summary,label1 value1 label2 value2 label3 value3 ,4984 615 0.192973 0.822442 0.637581 +metricName256,histogram,label1 value1 label2 value2 ,918 7055 4114 2697 244 +metricName257,summary,label1 value1 label2 value2 ,3734 2935 0.604483 0.909740 0.461785 +metricName258,counter,label1 value1 ,3156 +metricName259,histogram,label1 value1 label2 value2 label3 value3 ,4753 4193 84 692 3417 +metricName260,gauge,label1 value1 label2 value2 label3 value3 label4 value4 ,3181 +metricName261,gauge,label1 value1 label2 value2 ,3050 +metricName262,gauge,label1 value1 label2 value2 ,1614 +metricName263,histogram,label1 value1 ,3860 6882 2242 1488 3152 +metricName264,summary,label1 value1 ,917 3002 0.873447 0.753545 0.657448 +metricName265,gauge,label1 value1 label2 value2 label3 value3 ,1317 +metricName266,counter,label1 value1 label2 value2 label3 value3 label4 value4 ,3860 +metricName267,counter,label1 value1 ,3814 +metricName268,gauge,label1 value1 ,2305 +metricName269,histogram,label1 value1 label2 value2 ,4032 10679 4247 1973 4459 +metricName270,histogram,label1 value1 label2 value2 ,3362 5315 1053 3784 478 +metricName271,gauge,label1 value1 ,3099 +metricName272,counter,label1 value1 ,3370 +metricName273,gauge,label1 value1 label2 value2 ,3519 +metricName274,histogram,label1 value1 ,2896 8864 3925 2192 2747 +metricName275,gauge,label1 value1 label2 value2 ,2749 +metricName276,counter,label1 value1 label2 value2 label3 value3 ,4183 +metricName277,gauge,label1 value1 label2 value2 ,1708 +metricName278,summary,label1 value1 label2 value2 ,2248 3142 0.658926 0.460163 0.598313 +metricName279,gauge,label1 value1 label2 value2 label3 value3 label4 value4 ,375 +metricName280,gauge,label1 value1 label2 value2 label3 value3 label4 value4 ,4150 +metricName281,summary,label1 value1 ,3976 131 0.542686 0.615077 0.155477 +metricName282,counter,label1 value1 ,2862 +metricName283,summary,label1 value1 ,3322 414 0.853716 0.374761 0.788190 +metricName284,histogram,label1 value1 label2 value2 label3 value3 ,591 7745 294 3226 4225 +metricName285,histogram,label1 value1 label2 value2 label3 value3 label4 value4 ,4324 7379 4381 2467 531 +metricName286,counter,label1 value1 ,3202 +metricName287,histogram,label1 value1 ,1724 7626 2361 2474 2791 +metricName288,gauge,label1 value1 ,4327 +metricName289,histogram,label1 value1 label2 value2 ,3876 6512 2754 1929 1829 +metricName290,histogram,label1 value1 ,2710 7381 3163 797 3421 +metricName291,summary,label1 value1 label2 value2 label3 value3 ,4631 2906 0.851493 0.756972 0.921439 +metricName292,histogram,label1 value1 label2 value2 ,4460 6111 788 689 4634 +metricName293,gauge,label1 value1 label2 value2 ,3423 +metricName294,counter,label1 value1 ,249 +metricName295,histogram,label1 value1 label2 value2 ,131 4365 1597 614 2154 +metricName296,gauge,label1 value1 label2 value2 label3 value3 ,2543 +metricName297,histogram,label1 value1 ,2814 9120 3671 2959 2490 +metricName298,histogram,label1 value1 label2 value2 ,2298 5154 2594 95 2465 +metricName299,histogram,label1 value1 label2 value2 ,2290 8319 4950 501 2868 +metricName300,histogram,label1 value1 label2 value2 label3 value3 label4 value4 ,2930 9911 1824 4467 3620 +metricName301,counter,label1 value1 label2 value2 ,654 +metricName302,histogram,label1 value1 label2 value2 ,4113 6435 3975 1141 1319 +metricName303,histogram,label1 value1 label2 value2 label3 value3 label4 value4 ,4963 10336 3877 3311 3148 +metricName304,counter,label1 value1 ,2719 +metricName305,summary,label1 value1 label2 value2 label3 value3 ,4620 4909 0.742528 0.851067 0.285695 +metricName306,gauge,label1 value1 label2 value2 ,444 +metricName307,gauge,label1 value1 ,4338 +metricName308,summary,label1 value1 label2 value2 label3 value3 label4 value4 ,2965 1152 0.311973 0.126870 0.179834 +metricName309,counter,label1 value1 label2 value2 label3 value3 label4 value4 ,330 +metricName310,gauge,label1 value1 label2 value2 ,715 +metricName311,counter,label1 value1 label2 value2 ,638 +metricName312,summary,label1 value1 label2 value2 label3 value3 label4 value4 ,980 1280 0.460673 0.939673 0.793478 +metricName313,gauge,label1 value1 ,897 +metricName314,histogram,label1 value1 label2 value2 label3 value3 ,262 12418 4254 4914 3250 +metricName315,counter,label1 value1 ,4519 +metricName316,summary,label1 value1 label2 value2 label3 value3 ,3749 2096 0.094059 0.462083 0.885380 +metricName317,counter,label1 value1 label2 value2 ,3679 +metricName318,histogram,label1 value1 ,4109 11593 4838 2490 4265 +metricName319,gauge,label1 value1 ,2797 +metricName320,summary,label1 value1 ,3006 4669 0.338491 0.229749 0.401513 +metricName321,summary,label1 value1 label2 value2 ,4926 2486 0.790594 0.324426 0.431072 +metricName322,histogram,label1 value1 ,3981 1297 973 187 137 +metricName323,summary,label1 value1 label2 value2 ,581 1592 0.948903 0.136564 0.293160 +metricName324,summary,label1 value1 label2 value2 label3 value3 label4 value4 ,4862 4832 0.645498 0.552293 0.095756 +metricName325,gauge,label1 value1 label2 value2 label3 value3 ,673 +metricName326,histogram,label1 value1 label2 value2 ,165 8239 3389 1617 3233 +metricName327,counter,label1 value1 label2 value2 ,2695 +metricName328,summary,label1 value1 label2 value2 label3 value3 label4 value4 ,1570 4707 0.979575 0.730822 0.136832 +metricName329,summary,label1 value1 ,3340 3170 0.184943 0.054597 0.616148 +metricName330,gauge,label1 value1 ,4227 +metricName331,summary,label1 value1 label2 value2 label3 value3 ,2060 2883 0.854999 0.090411 0.236751 +metricName332,summary,label1 value1 label2 value2 label3 value3 ,82 836 0.827817 0.109355 0.181332 +metricName333,counter,label1 value1 label2 value2 ,2317 +metricName334,histogram,label1 value1 ,200 10549 3594 4130 2825 +metricName335,histogram,label1 value1 label2 value2 ,4634 7624 1133 4565 1926 +metricName336,counter,label1 value1 label2 value2 ,2131 +metricName337,summary,label1 value1 ,2986 3939 0.922463 0.419501 0.135860 +metricName338,counter,label1 value1 label2 value2 label3 value3 ,1731 +metricName339,gauge,label1 value1 label2 value2 label3 value3 ,2500 +metricName340,histogram,label1 value1 ,4073 4685 2880 1484 321 +metricName341,histogram,label1 value1 label2 value2 label3 value3 label4 value4 ,4684 10932 3524 3884 3524 +metricName342,gauge,label1 value1 label2 value2 label3 value3 label4 value4 ,2623 +metricName343,histogram,label1 value1 label2 value2 label3 value3 label4 value4 ,3657 6213 1632 3360 1221 +metricName344,histogram,label1 value1 label2 value2 label3 value3 ,3383 6851 1 3559 3291 +metricName345,gauge,label1 value1 label2 value2 label3 value3 label4 value4 ,4869 +metricName346,counter,label1 value1 label2 value2 label3 value3 ,3296 +metricName347,summary,label1 value1 label2 value2 label3 value3 ,4788 167 0.098895 0.617929 0.449358 +metricName348,gauge,label1 value1 label2 value2 label3 value3 label4 value4 ,2593 +metricName349,counter,label1 value1 label2 value2 ,3007 +metricName350,counter,label1 value1 label2 value2 label3 value3 ,3224 +metricName351,histogram,label1 value1 label2 value2 label3 value3 label4 value4 ,4793 11228 4641 4721 1866 +metricName352,gauge,label1 value1 label2 value2 ,906 +metricName353,gauge,label1 value1 label2 value2 ,956 +metricName354,summary,label1 value1 label2 value2 ,2935 118 0.688000 0.388398 0.698151 +metricName355,counter,label1 value1 label2 value2 ,4233 +metricName356,histogram,label1 value1 ,4140 9391 4303 4910 178 +metricName357,counter,label1 value1 label2 value2 label3 value3 label4 value4 ,3412 +metricName358,gauge,label1 value1 label2 value2 label3 value3 ,4437 +metricName359,gauge,label1 value1 label2 value2 label3 value3 label4 value4 ,3825 +metricName360,histogram,label1 value1 label2 value2 label3 value3 label4 value4 ,1624 5115 3837 1233 45 +metricName361,summary,label1 value1 ,928 4031 0.807332 0.832092 0.701700 +metricName362,counter,label1 value1 label2 value2 label3 value3 ,3287 +metricName363,histogram,label1 value1 label2 value2 label3 value3 label4 value4 ,1552 6375 482 3708 2185 +metricName364,counter,label1 value1 label2 value2 label3 value3 label4 value4 ,370 +metricName365,counter,label1 value1 ,2593 +metricName366,counter,label1 value1 label2 value2 label3 value3 label4 value4 ,4340 +metricName367,counter,label1 value1 ,431 +metricName368,gauge,label1 value1 label2 value2 ,3788 +metricName369,counter,label1 value1 ,3996 +metricName370,gauge,label1 value1 label2 value2 label3 value3 label4 value4 ,3790 +metricName371,histogram,label1 value1 ,4579 9227 4410 813 4004 +metricName372,gauge,label1 value1 label2 value2 label3 value3 label4 value4 ,3581 +metricName373,summary,label1 value1 label2 value2 label3 value3 ,3637 1423 0.845071 0.455142 0.338444 +metricName374,summary,label1 value1 label2 value2 ,147 3310 0.203074 0.758048 0.638762 +metricName375,counter,label1 value1 ,2966 +metricName376,gauge,label1 value1 label2 value2 label3 value3 ,3696 +metricName377,summary,label1 value1 label2 value2 ,3787 2417 0.344927 0.576797 0.647920 +metricName378,gauge,label1 value1 label2 value2 label3 value3 ,3172 +metricName379,gauge,label1 value1 label2 value2 label3 value3 ,164 +metricName380,gauge,label1 value1 label2 value2 ,4547 +metricName381,counter,label1 value1 ,4530 +metricName382,histogram,label1 value1 label2 value2 label3 value3 ,3751 2355 1589 128 638 +metricName383,summary,label1 value1 label2 value2 label3 value3 ,858 3319 0.532181 0.233198 0.256264 +metricName384,gauge,label1 value1 ,4684 +metricName385,histogram,label1 value1 label2 value2 label3 value3 label4 value4 ,310 6666 4445 1316 905 +metricName386,histogram,label1 value1 label2 value2 label3 value3 ,1236 8121 1970 2312 3839 +metricName387,histogram,label1 value1 ,4098 10048 4215 4873 960 +metricName388,gauge,label1 value1 label2 value2 label3 value3 ,4505 +metricName389,gauge,label1 value1 ,349 +metricName390,counter,label1 value1 ,3732 +metricName391,summary,label1 value1 ,2284 1469 0.650253 0.483174 0.907553 +metricName392,summary,label1 value1 label2 value2 ,327 402 0.642643 0.695404 0.387905 +metricName393,histogram,label1 value1 label2 value2 label3 value3 ,3468 10983 4982 3676 2325 +metricName394,counter,label1 value1 label2 value2 label3 value3 label4 value4 ,2936 +metricName395,summary,label1 value1 ,2717 1855 0.246065 0.184472 0.760804 +metricName396,histogram,label1 value1 label2 value2 label3 value3 ,3855 7118 2424 1345 3349 +metricName397,counter,label1 value1 label2 value2 label3 value3 ,1709 +metricName398,counter,label1 value1 label2 value2 label3 value3 ,4385 +metricName399,histogram,label1 value1 label2 value2 ,3294 9920 4753 2733 2434 +metricName400,counter,label1 value1 ,4643 +metricName401,counter,label1 value1 label2 value2 label3 value3 ,4431 +metricName402,summary,label1 value1 label2 value2 ,448 3691 0.095715 0.607589 0.723138 +metricName403,summary,label1 value1 ,2449 3229 0.691471 0.990483 0.350165 +metricName404,counter,label1 value1 ,3101 +metricName405,summary,label1 value1 label2 value2 ,1078 2152 0.640094 0.673291 0.332182 +metricName406,counter,label1 value1 label2 value2 label3 value3 ,1092 +metricName407,counter,label1 value1 label2 value2 ,4370 +metricName408,gauge,label1 value1 ,1637 +metricName409,gauge,label1 value1 label2 value2 label3 value3 ,2239 +metricName410,summary,label1 value1 label2 value2 label3 value3 ,120 3752 0.809432 0.234885 0.008285 +metricName411,gauge,label1 value1 label2 value2 label3 value3 ,2291 +metricName412,summary,label1 value1 label2 value2 label3 value3 ,952 2118 0.253348 0.056480 0.942923 +metricName413,summary,label1 value1 label2 value2 label3 value3 label4 value4 ,2367 1483 0.223642 0.891428 0.943952 +metricName414,counter,label1 value1 label2 value2 ,3467 +metricName415,histogram,label1 value1 label2 value2 label3 value3 ,741 6984 2127 2659 2198 +metricName416,histogram,label1 value1 ,3867 10894 3723 2379 4792 +metricName417,counter,label1 value1 label2 value2 label3 value3 ,3600 +metricName418,histogram,label1 value1 label2 value2 label3 value3 ,976 9018 856 4666 3496 +metricName419,counter,label1 value1 label2 value2 label3 value3 label4 value4 ,3228 +metricName420,summary,label1 value1 label2 value2 ,3711 2607 0.051809 0.286314 0.786302 +metricName421,gauge,label1 value1 label2 value2 label3 value3 label4 value4 ,4301 +metricName422,gauge,label1 value1 label2 value2 ,3812 +metricName423,summary,label1 value1 ,2217 258 0.977461 0.838687 0.982646 +metricName424,histogram,label1 value1 label2 value2 ,4076 7446 3320 3643 483 +metricName425,histogram,label1 value1 label2 value2 ,455 8506 1884 1790 4832 +metricName426,counter,label1 value1 label2 value2 label3 value3 label4 value4 ,1603 +metricName427,histogram,label1 value1 label2 value2 ,2440 9428 2943 2448 4037 +metricName428,gauge,label1 value1 label2 value2 label3 value3 ,4360 +metricName429,histogram,label1 value1 ,405 8916 3221 1472 4223 +metricName430,histogram,label1 value1 label2 value2 label3 value3 label4 value4 ,175 9342 2920 3839 2583 +metricName431,histogram,label1 value1 ,3873 3582 1313 1288 981 +metricName432,gauge,label1 value1 label2 value2 label3 value3 ,4698 +metricName433,counter,label1 value1 label2 value2 label3 value3 ,3396 +metricName434,summary,label1 value1 label2 value2 ,998 300 0.749992 0.264211 0.302036 +metricName435,gauge,label1 value1 label2 value2 label3 value3 ,2483 +metricName436,counter,label1 value1 label2 value2 label3 value3 ,554 +metricName437,summary,label1 value1 ,4995 4648 0.708315 0.848777 0.817621 +metricName438,gauge,label1 value1 ,3904 +metricName439,gauge,label1 value1 label2 value2 label3 value3 label4 value4 ,2321 +metricName440,counter,label1 value1 ,1842 +metricName441,histogram,label1 value1 ,3037 10795 1379 4861 4555 +metricName442,gauge,label1 value1 label2 value2 label3 value3 label4 value4 ,1892 +metricName443,gauge,label1 value1 label2 value2 label3 value3 label4 value4 ,280 +metricName444,histogram,label1 value1 ,1915 10301 4485 3932 1884 +metricName445,histogram,label1 value1 label2 value2 ,4223 7272 1203 3219 2850 +metricName446,gauge,label1 value1 label2 value2 label3 value3 label4 value4 ,4827 +metricName447,counter,label1 value1 ,969 +metricName448,histogram,label1 value1 label2 value2 ,4025 7177 2906 700 3571 +metricName449,histogram,label1 value1 label2 value2 ,813 5457 3671 406 1380 +metricName450,summary,label1 value1 label2 value2 label3 value3 label4 value4 ,1349 1077 0.872392 0.096917 0.701352 +metricName451,summary,label1 value1 label2 value2 ,2469 922 0.077860 0.454899 0.529170 +metricName452,summary,label1 value1 label2 value2 label3 value3 ,4170 1810 0.813875 0.159474 0.929552 +metricName453,gauge,label1 value1 ,2165 +metricName454,histogram,label1 value1 ,985 9027 3705 1604 3718 +metricName455,counter,label1 value1 ,739 +metricName456,counter,label1 value1 ,4260 +metricName457,summary,label1 value1 label2 value2 label3 value3 label4 value4 ,1123 4051 0.439481 0.893744 0.778288 +metricName458,gauge,label1 value1 label2 value2 label3 value3 label4 value4 ,4514 +metricName459,summary,label1 value1 label2 value2 label3 value3 ,4497 3339 0.641149 0.232546 0.771113 +metricName460,summary,label1 value1 label2 value2 label3 value3 label4 value4 ,271 1001 0.074100 0.307619 0.688608 +metricName461,gauge,label1 value1 ,1440 +metricName462,summary,label1 value1 ,4640 3077 0.418210 0.876844 0.991176 +metricName463,summary,label1 value1 label2 value2 label3 value3 ,3714 1409 0.413448 0.432968 0.448752 +metricName464,summary,label1 value1 label2 value2 label3 value3 ,2283 1978 0.745180 0.189514 0.938810 +metricName465,summary,label1 value1 label2 value2 label3 value3 label4 value4 ,4237 4352 0.560289 0.829436 0.113094 +metricName466,summary,label1 value1 label2 value2 ,3650 2406 0.438972 0.789093 0.055286 +metricName467,summary,label1 value1 label2 value2 label3 value3 ,171 4348 0.846407 0.758662 0.366981 +metricName468,histogram,label1 value1 label2 value2 label3 value3 label4 value4 ,2278 8103 1434 3969 2700 +metricName469,summary,label1 value1 label2 value2 ,3462 526 0.084411 0.969081 0.585682 +metricName470,summary,label1 value1 label2 value2 ,2819 2842 0.800437 0.985856 0.015309 +metricName471,summary,label1 value1 ,4513 729 0.294940 0.476640 0.464878 +metricName472,summary,label1 value1 ,4316 3416 0.626449 0.071259 0.338837 +metricName473,counter,label1 value1 label2 value2 label3 value3 label4 value4 ,4416 +metricName474,summary,label1 value1 label2 value2 ,4971 215 0.478571 0.755276 0.565956 +metricName475,histogram,label1 value1 label2 value2 label3 value3 ,973 1992 357 478 1157 +metricName476,gauge,label1 value1 label2 value2 label3 value3 label4 value4 ,3738 +metricName477,gauge,label1 value1 label2 value2 label3 value3 ,1224 +metricName478,histogram,label1 value1 label2 value2 ,4482 5325 931 2090 2304 +metricName479,summary,label1 value1 label2 value2 label3 value3 ,1779 4969 0.218984 0.478845 0.065981 +metricName480,histogram,label1 value1 label2 value2 ,4156 9498 3223 3594 2681 +metricName481,counter,label1 value1 label2 value2 label3 value3 ,754 +metricName482,histogram,label1 value1 label2 value2 label3 value3 ,1609 3694 618 1332 1744 +metricName483,gauge,label1 value1 ,2468 +metricName484,histogram,label1 value1 label2 value2 label3 value3 ,3676 9929 4437 2710 2782 +metricName485,histogram,label1 value1 label2 value2 label3 value3 label4 value4 ,4430 8993 2458 4325 2210 +metricName486,histogram,label1 value1 label2 value2 ,1048 3681 838 2567 276 +metricName487,gauge,label1 value1 label2 value2 ,4637 +metricName488,counter,label1 value1 label2 value2 label3 value3 ,4908 +metricName489,counter,label1 value1 label2 value2 label3 value3 ,2677 +metricName490,histogram,label1 value1 label2 value2 label3 value3 ,1021 9758 3877 4572 1309 +metricName491,histogram,label1 value1 label2 value2 label3 value3 label4 value4 ,2754 9241 4226 4142 873 +metricName492,histogram,label1 value1 ,872 8511 3732 1433 3346 +metricName493,histogram,label1 value1 label2 value2 ,1918 5460 2705 2653 102 +metricName494,histogram,label1 value1 label2 value2 ,3338 10296 4236 4186 1874 +metricName495,counter,label1 value1 label2 value2 label3 value3 ,3599 +metricName496,histogram,label1 value1 ,2501 9697 722 4372 4603 +metricName497,summary,label1 value1 label2 value2 ,682 3345 0.213088 0.555559 0.309229 +metricName498,histogram,label1 value1 label2 value2 label3 value3 ,3523 8142 2229 1514 4399 +metricName499,counter,label1 value1 label2 value2 label3 value3 ,4662 +metricName500,counter,label1 value1 label2 value2 label3 value3 ,3279 +metricName501,counter,label1 value1 label2 value2 label3 value3 ,504 +metricName502,summary,label1 value1 label2 value2 ,3666 1804 0.664311 0.559041 0.178414 +metricName503,counter,label1 value1 ,2921 +metricName504,gauge,label1 value1 ,3852 +metricName505,gauge,label1 value1 label2 value2 label3 value3 ,4927 +metricName506,gauge,label1 value1 label2 value2 label3 value3 label4 value4 ,3072 +metricName507,gauge,label1 value1 label2 value2 label3 value3 ,1981 +metricName508,summary,label1 value1 ,4433 2401 0.270123 0.795448 0.815411 +metricName509,counter,label1 value1 label2 value2 label3 value3 label4 value4 ,2360 +metricName510,histogram,label1 value1 ,710 833 169 18 646 +metricName511,summary,label1 value1 label2 value2 ,4332 3038 0.171721 0.833756 0.261565 +metricName512,gauge,label1 value1 ,4526 +metricName513,counter,label1 value1 label2 value2 ,1828 +metricName514,counter,label1 value1 label2 value2 ,4951 +metricName515,summary,label1 value1 label2 value2 ,2934 3642 0.013987 0.181977 0.806115 +metricName516,gauge,label1 value1 label2 value2 label3 value3 label4 value4 ,4974 +metricName517,summary,label1 value1 ,4877 1220 0.375465 0.327556 0.980226 +metricName518,histogram,label1 value1 label2 value2 ,3141 9434 3834 2086 3514 +metricName519,histogram,label1 value1 label2 value2 label3 value3 ,4412 2602 1662 697 243 +metricName520,gauge,label1 value1 label2 value2 ,1562 +metricName521,histogram,label1 value1 label2 value2 ,513 6892 534 3691 2667 +metricName522,summary,label1 value1 label2 value2 ,3994 186 0.507827 0.337154 0.496229 +metricName523,histogram,label1 value1 label2 value2 label3 value3 ,4219 6089 873 2489 2727 +metricName524,summary,label1 value1 label2 value2 label3 value3 label4 value4 ,3725 3917 0.812103 0.477867 0.807062 +metricName525,summary,label1 value1 ,1719 2439 0.339691 0.516425 0.258799 +metricName526,gauge,label1 value1 ,4233 +metricName527,counter,label1 value1 label2 value2 label3 value3 ,2137 +metricName528,summary,label1 value1 label2 value2 label3 value3 ,1761 2889 0.878085 0.158512 0.623983 +metricName529,counter,label1 value1 ,2078 +metricName530,histogram,label1 value1 label2 value2 ,3358 7374 2078 2726 2570 +metricName531,histogram,label1 value1 label2 value2 label3 value3 ,3448 10454 4103 3651 2700 +metricName532,counter,label1 value1 ,1163 +metricName533,gauge,label1 value1 label2 value2 label3 value3 label4 value4 ,4263 +metricName534,histogram,label1 value1 label2 value2 label3 value3 ,4745 9110 885 4651 3574 +metricName535,histogram,label1 value1 label2 value2 label3 value3 ,3855 8435 350 3297 4788 +metricName536,gauge,label1 value1 ,3205 +metricName537,counter,label1 value1 label2 value2 ,1540 +metricName538,gauge,label1 value1 ,1256 +metricName539,summary,label1 value1 label2 value2 ,4366 3997 0.529158 0.294035 0.806775 +metricName540,histogram,label1 value1 label2 value2 label3 value3 label4 value4 ,1610 10863 2588 3444 4831 +metricName541,gauge,label1 value1 label2 value2 label3 value3 ,1511 +metricName542,counter,label1 value1 label2 value2 label3 value3 ,4073 +metricName543,histogram,label1 value1 ,467 8149 3516 2613 2020 +metricName544,summary,label1 value1 label2 value2 label3 value3 label4 value4 ,4376 3512 0.560729 0.296766 0.368349 +metricName545,histogram,label1 value1 label2 value2 label3 value3 label4 value4 ,1320 2734 2134 561 39 +metricName546,gauge,label1 value1 label2 value2 label3 value3 label4 value4 ,3235 +metricName547,histogram,label1 value1 label2 value2 ,442 7412 4163 954 2295 +metricName548,gauge,label1 value1 ,1837 +metricName549,counter,label1 value1 ,2533 +metricName550,histogram,label1 value1 label2 value2 label3 value3 ,371 9011 1745 4536 2730 +metricName551,gauge,label1 value1 ,4742 +metricName552,histogram,label1 value1 label2 value2 label3 value3 label4 value4 ,2178 12662 3455 4413 4794 +metricName553,summary,label1 value1 label2 value2 ,3301 1867 0.698554 0.390186 0.006015 +metricName554,gauge,label1 value1 label2 value2 label3 value3 ,2477 +metricName555,counter,label1 value1 label2 value2 label3 value3 ,811 +metricName556,histogram,label1 value1 ,3427 10194 4643 4200 1351 +metricName557,summary,label1 value1 ,1957 1491 0.531255 0.316494 0.440829 +metricName558,counter,label1 value1 label2 value2 label3 value3 label4 value4 ,3713 +metricName559,histogram,label1 value1 ,3790 7331 2542 2422 2367 +metricName560,summary,label1 value1 label2 value2 label3 value3 ,4406 3259 0.368051 0.797296 0.042162 +metricName561,histogram,label1 value1 label2 value2 label3 value3 label4 value4 ,1173 6311 325 4846 1140 +metricName562,gauge,label1 value1 label2 value2 label3 value3 ,3701 +metricName563,summary,label1 value1 label2 value2 label3 value3 label4 value4 ,2307 1404 0.794105 0.818356 0.697900 +metricName564,summary,label1 value1 label2 value2 label3 value3 label4 value4 ,1668 4005 0.120326 0.101846 0.005910 +metricName565,counter,label1 value1 label2 value2 label3 value3 ,356 +metricName566,gauge,label1 value1 label2 value2 label3 value3 label4 value4 ,630 +metricName567,counter,label1 value1 label2 value2 label3 value3 label4 value4 ,2383 +metricName568,summary,label1 value1 label2 value2 label3 value3 ,4882 2431 0.228055 0.609108 0.556057 +metricName569,summary,label1 value1 label2 value2 label3 value3 label4 value4 ,3366 2116 0.844450 0.373133 0.625979 +metricName570,summary,label1 value1 ,4743 2976 0.941833 0.303862 0.990118 +metricName571,gauge,label1 value1 label2 value2 label3 value3 label4 value4 ,3477 +metricName572,summary,label1 value1 label2 value2 label3 value3 label4 value4 ,1097 200 0.856553 0.105270 0.839742 +metricName573,counter,label1 value1 ,646 +metricName574,summary,label1 value1 ,4766 755 0.547071 0.577377 0.007525 +metricName575,gauge,label1 value1 label2 value2 label3 value3 label4 value4 ,1530 +metricName576,gauge,label1 value1 label2 value2 label3 value3 ,4303 +metricName577,histogram,label1 value1 label2 value2 ,4788 11198 4963 3009 3226 +metricName578,counter,label1 value1 ,751 +metricName579,counter,label1 value1 label2 value2 ,699 +metricName580,histogram,label1 value1 label2 value2 label3 value3 ,2500 7528 3121 3343 1064 +metricName581,gauge,label1 value1 label2 value2 label3 value3 label4 value4 ,2168 +metricName582,summary,label1 value1 label2 value2 ,4850 2084 0.512445 0.442135 0.277200 +metricName583,summary,label1 value1 label2 value2 label3 value3 ,22 3291 0.811878 0.141107 0.363797 +metricName584,gauge,label1 value1 label2 value2 ,3170 +metricName585,gauge,label1 value1 ,2876 +metricName586,histogram,label1 value1 label2 value2 label3 value3 label4 value4 ,2135 6639 1788 4056 795 +metricName587,summary,label1 value1 label2 value2 label3 value3 ,1538 2595 0.919240 0.932022 0.915536 +metricName588,counter,label1 value1 label2 value2 label3 value3 label4 value4 ,3301 +metricName589,histogram,label1 value1 label2 value2 label3 value3 ,22 7968 2312 3666 1990 +metricName590,counter,label1 value1 label2 value2 ,233 +metricName591,gauge,label1 value1 label2 value2 ,2704 +metricName592,gauge,label1 value1 label2 value2 label3 value3 ,1785 +metricName593,histogram,label1 value1 ,3020 9547 2485 2737 4325 +metricName594,histogram,label1 value1 label2 value2 label3 value3 label4 value4 ,4674 6248 3371 238 2639 +metricName595,histogram,label1 value1 label2 value2 label3 value3 label4 value4 ,2435 3033 1361 867 805 +metricName596,counter,label1 value1 label2 value2 label3 value3 label4 value4 ,2712 +metricName597,histogram,label1 value1 label2 value2 label3 value3 ,1279 5526 3084 1813 629 +metricName598,counter,label1 value1 label2 value2 label3 value3 ,2243 +metricName599,histogram,label1 value1 label2 value2 label3 value3 ,4194 6645 3128 2932 585 +metricName600,histogram,label1 value1 label2 value2 label3 value3 label4 value4 ,857 7162 3829 2629 704 +metricName601,histogram,label1 value1 label2 value2 label3 value3 label4 value4 ,126 10213 2985 2768 4460 +metricName602,histogram,label1 value1 label2 value2 label3 value3 label4 value4 ,3816 4287 1650 1825 812 +metricName603,summary,label1 value1 label2 value2 label3 value3 label4 value4 ,4397 952 0.336547 0.010152 0.026633 +metricName604,gauge,label1 value1 label2 value2 ,1029 +metricName605,counter,label1 value1 label2 value2 label3 value3 ,2684 +metricName606,summary,label1 value1 label2 value2 label3 value3 label4 value4 ,2676 3052 0.346711 0.762710 0.898522 +metricName607,counter,label1 value1 label2 value2 label3 value3 ,3406 +metricName608,counter,label1 value1 label2 value2 label3 value3 label4 value4 ,3923 +metricName609,gauge,label1 value1 label2 value2 label3 value3 label4 value4 ,2393 +metricName610,counter,label1 value1 ,3061 +metricName611,summary,label1 value1 ,3185 2506 0.182716 0.872442 0.447302 +metricName612,summary,label1 value1 label2 value2 label3 value3 label4 value4 ,425 1919 0.427660 0.247590 0.473267 +metricName613,gauge,label1 value1 label2 value2 ,320 +metricName614,summary,label1 value1 ,2170 470 0.609091 0.106815 0.314269 +metricName615,gauge,label1 value1 ,21 +metricName616,counter,label1 value1 label2 value2 label3 value3 ,3692 +metricName617,summary,label1 value1 ,1451 3799 0.111496 0.927619 0.030255 +metricName618,gauge,label1 value1 label2 value2 label3 value3 ,3578 +metricName619,gauge,label1 value1 label2 value2 label3 value3 label4 value4 ,3210 +metricName620,counter,label1 value1 label2 value2 label3 value3 label4 value4 ,4696 +metricName621,counter,label1 value1 label2 value2 ,4675 +metricName622,summary,label1 value1 ,3532 2597 0.944976 0.128409 0.001651 +metricName623,summary,label1 value1 label2 value2 label3 value3 ,794 4560 0.612257 0.658348 0.312444 +metricName624,counter,label1 value1 label2 value2 ,1082 +metricName625,gauge,label1 value1 ,742 +metricName626,summary,label1 value1 label2 value2 label3 value3 label4 value4 ,634 954 0.271861 0.649408 0.317554 +metricName627,summary,label1 value1 label2 value2 label3 value3 label4 value4 ,123 4057 0.833411 0.155294 0.175188 +metricName628,counter,label1 value1 label2 value2 ,4832 +metricName629,gauge,label1 value1 label2 value2 ,2462 +metricName630,histogram,label1 value1 label2 value2 label3 value3 ,4701 3803 1659 1832 312 +metricName631,histogram,label1 value1 label2 value2 label3 value3 ,4707 11086 4932 2033 4121 +metricName632,gauge,label1 value1 label2 value2 ,1800 +metricName633,summary,label1 value1 ,1946 112 0.926922 0.235902 0.877399 +metricName634,counter,label1 value1 ,2109 +metricName635,histogram,label1 value1 label2 value2 label3 value3 label4 value4 ,4806 10031 2424 3675 3932 +metricName636,histogram,label1 value1 label2 value2 label3 value3 label4 value4 ,1903 6263 2934 1461 1868 +metricName637,summary,label1 value1 ,4422 2372 0.883318 0.731929 0.341363 +metricName638,counter,label1 value1 ,1806 +metricName639,summary,label1 value1 label2 value2 label3 value3 ,1836 3388 0.450825 0.258605 0.754823 +metricName640,gauge,label1 value1 label2 value2 ,4068 +metricName641,gauge,label1 value1 label2 value2 ,463 +metricName642,summary,label1 value1 ,597 3048 0.651901 0.686518 0.934819 +metricName643,gauge,label1 value1 label2 value2 label3 value3 ,3141 +metricName644,histogram,label1 value1 label2 value2 ,4500 1822 649 153 1020 +metricName645,histogram,label1 value1 ,3945 9951 2923 2719 4309 +metricName646,counter,label1 value1 label2 value2 ,139 +metricName647,summary,label1 value1 label2 value2 label3 value3 ,1010 535 0.260596 0.287426 0.720234 +metricName648,counter,label1 value1 ,306 +metricName649,gauge,label1 value1 ,4003 +metricName650,counter,label1 value1 label2 value2 label3 value3 ,212 +metricName651,gauge,label1 value1 label2 value2 ,2144 +metricName652,summary,label1 value1 ,3655 2757 0.381295 0.403152 0.308632 +metricName653,histogram,label1 value1 ,4505 9648 3310 1844 4494 +metricName654,summary,label1 value1 label2 value2 label3 value3 ,1146 4153 0.840558 0.770186 0.541469 +metricName655,counter,label1 value1 label2 value2 ,4249 +metricName656,gauge,label1 value1 ,3507 +metricName657,gauge,label1 value1 label2 value2 label3 value3 ,2495 +metricName658,summary,label1 value1 label2 value2 ,3166 2752 0.465469 0.652720 0.069310 +metricName659,histogram,label1 value1 label2 value2 label3 value3 label4 value4 ,2590 5208 2038 1217 1953 +metricName660,histogram,label1 value1 ,2335 6472 4590 1088 794 +metricName661,gauge,label1 value1 label2 value2 label3 value3 ,4323 +metricName662,histogram,label1 value1 label2 value2 label3 value3 label4 value4 ,2190 9939 2356 4317 3266 +metricName663,counter,label1 value1 label2 value2 label3 value3 ,1886 +metricName664,histogram,label1 value1 label2 value2 label3 value3 label4 value4 ,618 9571 3076 4217 2278 +metricName665,gauge,label1 value1 ,3133 +metricName666,counter,label1 value1 label2 value2 label3 value3 label4 value4 ,604 +metricName667,histogram,label1 value1 label2 value2 label3 value3 label4 value4 ,2781 4203 1423 1446 1334 +metricName668,summary,label1 value1 ,3809 4502 0.181036 0.864084 0.567450 +metricName669,summary,label1 value1 ,1796 3239 0.747453 0.238698 0.409980 +metricName670,gauge,label1 value1 label2 value2 label3 value3 ,2393 +metricName671,gauge,label1 value1 label2 value2 label3 value3 label4 value4 ,735 +metricName672,histogram,label1 value1 label2 value2 ,3108 7838 2081 910 4847 +metricName673,gauge,label1 value1 label2 value2 label3 value3 ,3048 +metricName674,counter,label1 value1 ,3238 +metricName675,summary,label1 value1 label2 value2 label3 value3 label4 value4 ,3746 594 0.876074 0.638437 0.254898 +metricName676,histogram,label1 value1 label2 value2 label3 value3 ,4956 9869 2464 4396 3009 +metricName677,counter,label1 value1 label2 value2 ,1420 +metricName678,histogram,label1 value1 label2 value2 label3 value3 ,3339 7893 4417 2529 947 +metricName679,summary,label1 value1 ,3537 709 0.482247 0.450055 0.529270 +metricName680,histogram,label1 value1 ,3306 9650 2788 2691 4171 +metricName681,histogram,label1 value1 ,275 7440 2891 2953 1596 +metricName682,summary,label1 value1 label2 value2 ,1252 152 0.450399 0.550951 0.525794 +metricName683,gauge,label1 value1 label2 value2 ,723 +metricName684,histogram,label1 value1 label2 value2 label3 value3 ,3099 5326 190 3800 1336 +metricName685,counter,label1 value1 label2 value2 ,4872 +metricName686,gauge,label1 value1 label2 value2 ,2590 +metricName687,summary,label1 value1 label2 value2 label3 value3 ,4372 4969 0.560223 0.904133 0.337048 +metricName688,gauge,label1 value1 label2 value2 ,1890 +metricName689,histogram,label1 value1 label2 value2 label3 value3 ,4157 10229 4197 3937 2095 +metricName690,histogram,label1 value1 label2 value2 ,1353 10850 2110 4572 4168 +metricName691,summary,label1 value1 label2 value2 label3 value3 ,1188 1058 0.404718 0.196561 0.789752 +metricName692,histogram,label1 value1 label2 value2 label3 value3 label4 value4 ,3088 11848 3135 3885 4828 +metricName693,gauge,label1 value1 label2 value2 label3 value3 label4 value4 ,1289 +metricName694,summary,label1 value1 label2 value2 ,1339 1951 0.141138 0.368769 0.280795 +metricName695,summary,label1 value1 label2 value2 ,3833 3677 0.380802 0.221433 0.744603 +metricName696,summary,label1 value1 label2 value2 label3 value3 ,4123 1163 0.110501 0.299387 0.034930 +metricName697,gauge,label1 value1 label2 value2 label3 value3 ,3835 +metricName698,counter,label1 value1 label2 value2 label3 value3 ,3511 +metricName699,gauge,label1 value1 label2 value2 label3 value3 label4 value4 ,2 +metricName700,histogram,label1 value1 label2 value2 label3 value3 label4 value4 ,1216 5199 119 4704 376 +metricName701,summary,label1 value1 label2 value2 label3 value3 ,4376 4091 0.991330 0.717397 0.738674 +metricName702,histogram,label1 value1 label2 value2 label3 value3 ,656 8121 2469 4409 1243 +metricName703,summary,label1 value1 label2 value2 ,1157 3947 0.009897 0.198497 0.930285 +metricName704,counter,label1 value1 ,2631 +metricName705,histogram,label1 value1 ,4211 7990 3208 3020 1762 +metricName706,histogram,label1 value1 ,912 7203 1587 1645 3971 +metricName707,gauge,label1 value1 label2 value2 label3 value3 ,4794 +metricName708,counter,label1 value1 label2 value2 ,1590 +metricName709,histogram,label1 value1 label2 value2 ,2563 6356 54 1626 4676 +metricName710,histogram,label1 value1 label2 value2 ,4422 8000 2802 315 4883 +metricName711,summary,label1 value1 label2 value2 label3 value3 ,2094 881 0.608486 0.713793 0.267542 +metricName712,histogram,label1 value1 label2 value2 ,871 6517 165 4355 1997 +metricName713,counter,label1 value1 label2 value2 ,3727 +metricName714,summary,label1 value1 label2 value2 ,1111 3234 0.472023 0.131507 0.914151 +metricName715,counter,label1 value1 label2 value2 label3 value3 ,209 +metricName716,histogram,label1 value1 label2 value2 label3 value3 ,836 10286 1885 4679 3722 +metricName717,counter,label1 value1 label2 value2 label3 value3 label4 value4 ,1173 +metricName718,summary,label1 value1 label2 value2 ,3869 3258 0.208349 0.395384 0.356849 +metricName719,gauge,label1 value1 label2 value2 label3 value3 ,2762 +metricName720,gauge,label1 value1 label2 value2 label3 value3 label4 value4 ,1107 +metricName721,summary,label1 value1 ,3555 3611 0.917244 0.887941 0.959495 +metricName722,gauge,label1 value1 ,3888 +metricName723,gauge,label1 value1 label2 value2 label3 value3 label4 value4 ,1277 +metricName724,counter,label1 value1 ,4486 +metricName725,summary,label1 value1 ,4032 1374 0.597992 0.094897 0.408712 +metricName726,histogram,label1 value1 label2 value2 label3 value3 label4 value4 ,3359 7897 4850 1722 1325 +metricName727,gauge,label1 value1 label2 value2 ,4873 +metricName728,gauge,label1 value1 label2 value2 ,4698 +metricName729,histogram,label1 value1 ,1310 2873 1051 519 1303 +metricName730,summary,label1 value1 ,4347 3352 0.546772 0.119438 0.874014 +metricName731,counter,label1 value1 label2 value2 label3 value3 ,4472 +metricName732,gauge,label1 value1 label2 value2 label3 value3 ,1895 +metricName733,gauge,label1 value1 label2 value2 ,1745 +metricName734,counter,label1 value1 label2 value2 label3 value3 label4 value4 ,3812 +metricName735,histogram,label1 value1 ,2742 10585 4125 1998 4462 +metricName736,summary,label1 value1 label2 value2 label3 value3 label4 value4 ,3708 812 0.337471 0.367786 0.905021 +metricName737,counter,label1 value1 label2 value2 label3 value3 label4 value4 ,2052 +metricName738,histogram,label1 value1 label2 value2 label3 value3 ,2593 7852 1869 2623 3360 +metricName739,summary,label1 value1 label2 value2 ,1230 2894 0.178717 0.085180 0.709698 +metricName740,gauge,label1 value1 label2 value2 label3 value3 ,1684 +metricName741,gauge,label1 value1 label2 value2 label3 value3 ,4587 +metricName742,histogram,label1 value1 label2 value2 ,1116 10272 4471 1375 4426 +metricName743,counter,label1 value1 label2 value2 ,2206 +metricName744,gauge,label1 value1 label2 value2 label3 value3 label4 value4 ,1991 +metricName745,gauge,label1 value1 ,4987 +metricName746,gauge,label1 value1 label2 value2 ,1732 +metricName747,summary,label1 value1 label2 value2 label3 value3 ,4589 3294 0.872346 0.104710 0.401213 +metricName748,histogram,label1 value1 label2 value2 label3 value3 label4 value4 ,243 8265 3376 3136 1753 +metricName749,summary,label1 value1 ,2580 3256 0.447603 0.633337 0.713393 +metricName750,gauge,label1 value1 label2 value2 label3 value3 ,1725 +metricName751,summary,label1 value1 label2 value2 label3 value3 label4 value4 ,3645 4776 0.790546 0.686322 0.562236 +metricName752,histogram,label1 value1 label2 value2 ,3012 8115 2891 2266 2958 +metricName753,histogram,label1 value1 label2 value2 ,1065 10199 2590 4680 2929 +metricName754,counter,label1 value1 label2 value2 label3 value3 label4 value4 ,4536 +metricName755,histogram,label1 value1 label2 value2 label3 value3 label4 value4 ,181 5784 862 1380 3542 +metricName756,counter,label1 value1 label2 value2 label3 value3 label4 value4 ,2949 +metricName757,counter,label1 value1 label2 value2 ,1505 +metricName758,counter,label1 value1 ,3069 +metricName759,summary,label1 value1 label2 value2 label3 value3 label4 value4 ,4009 832 0.148264 0.010811 0.721755 +metricName760,counter,label1 value1 ,3185 +metricName761,summary,label1 value1 ,4965 3039 0.730305 0.595537 0.317861 +metricName762,counter,label1 value1 ,1576 +metricName763,gauge,label1 value1 label2 value2 label3 value3 ,154 +metricName764,summary,label1 value1 label2 value2 label3 value3 ,4381 3198 0.018470 0.521475 0.144481 +metricName765,histogram,label1 value1 label2 value2 ,718 5629 2360 1703 1566 +metricName766,summary,label1 value1 label2 value2 ,2070 19 0.744131 0.195333 0.324738 +metricName767,summary,label1 value1 label2 value2 label3 value3 ,611 1648 0.227925 0.156587 0.867393 +metricName768,gauge,label1 value1 label2 value2 label3 value3 label4 value4 ,4662 +metricName769,counter,label1 value1 ,2386 +metricName770,counter,label1 value1 label2 value2 label3 value3 label4 value4 ,1897 +metricName771,summary,label1 value1 ,4237 17 0.661529 0.954867 0.574492 +metricName772,gauge,label1 value1 label2 value2 label3 value3 ,997 +metricName773,counter,label1 value1 label2 value2 label3 value3 label4 value4 ,4515 +metricName774,summary,label1 value1 label2 value2 label3 value3 label4 value4 ,735 3393 0.213541 0.688149 0.146677 +metricName775,histogram,label1 value1 label2 value2 ,537 6793 2361 287 4145 +metricName776,summary,label1 value1 label2 value2 ,2512 2597 0.459099 0.088916 0.611501 +metricName777,histogram,label1 value1 label2 value2 label3 value3 label4 value4 ,964 9080 190 4284 4606 +metricName778,gauge,label1 value1 label2 value2 label3 value3 ,2458 +metricName779,histogram,label1 value1 ,174 1490 185 395 910 +metricName780,histogram,label1 value1 label2 value2 label3 value3 ,3911 9379 2462 2086 4831 +metricName781,summary,label1 value1 label2 value2 label3 value3 label4 value4 ,4445 1525 0.752227 0.722926 0.308498 +metricName782,gauge,label1 value1 label2 value2 label3 value3 ,2643 +metricName783,gauge,label1 value1 label2 value2 ,2420 +metricName784,counter,label1 value1 ,4773 +metricName785,gauge,label1 value1 ,2314 +metricName786,counter,label1 value1 ,2043 +metricName787,gauge,label1 value1 ,3101 +metricName788,summary,label1 value1 label2 value2 label3 value3 label4 value4 ,1980 1549 0.059498 0.173893 0.250765 +metricName789,gauge,label1 value1 label2 value2 ,1502 +metricName790,counter,label1 value1 ,3103 +metricName791,summary,label1 value1 label2 value2 label3 value3 label4 value4 ,1899 4175 0.249211 0.447760 0.945104 +metricName792,histogram,label1 value1 label2 value2 label3 value3 label4 value4 ,1131 7201 4738 2003 460 +metricName793,histogram,label1 value1 label2 value2 label3 value3 ,3411 13584 4093 4734 4757 +metricName794,summary,label1 value1 label2 value2 label3 value3 ,1659 1285 0.119420 0.795422 0.451519 +metricName795,summary,label1 value1 label2 value2 label3 value3 ,2825 2105 0.480896 0.759705 0.628462 +metricName796,gauge,label1 value1 ,4363 +metricName797,counter,label1 value1 label2 value2 label3 value3 label4 value4 ,1330 +metricName798,counter,label1 value1 label2 value2 label3 value3 label4 value4 ,4962 +metricName799,summary,label1 value1 label2 value2 label3 value3 label4 value4 ,2016 476 0.768483 0.145571 0.412227 +metricName800,summary,label1 value1 ,3447 4248 0.560837 0.755811 0.690956 +metricName801,summary,label1 value1 ,2347 127 0.782682 0.604027 0.514362 +metricName802,summary,label1 value1 label2 value2 label3 value3 label4 value4 ,594 4148 0.125061 0.896308 0.464698 +metricName803,gauge,label1 value1 label2 value2 ,3516 +metricName804,counter,label1 value1 label2 value2 ,895 +metricName805,counter,label1 value1 label2 value2 label3 value3 label4 value4 ,3779 +metricName806,gauge,label1 value1 label2 value2 ,4286 +metricName807,gauge,label1 value1 label2 value2 label3 value3 label4 value4 ,3321 +metricName808,histogram,label1 value1 label2 value2 label3 value3 label4 value4 ,916 9273 2303 2380 4590 +metricName809,gauge,label1 value1 label2 value2 ,2595 +metricName810,gauge,label1 value1 label2 value2 ,3417 +metricName811,summary,label1 value1 ,61 3927 0.304102 0.826071 0.505405 +metricName812,gauge,label1 value1 label2 value2 ,3282 +metricName813,gauge,label1 value1 label2 value2 label3 value3 label4 value4 ,1488 +metricName814,counter,label1 value1 label2 value2 label3 value3 label4 value4 ,189 +metricName815,gauge,label1 value1 label2 value2 label3 value3 label4 value4 ,2502 +metricName816,histogram,label1 value1 label2 value2 label3 value3 label4 value4 ,2006 9635 4291 3082 2262 +metricName817,histogram,label1 value1 ,1807 3193 1684 650 859 +metricName818,counter,label1 value1 label2 value2 label3 value3 ,615 +metricName819,summary,label1 value1 ,1998 924 0.424757 0.520057 0.109723 +metricName820,gauge,label1 value1 ,1058 +metricName821,counter,label1 value1 label2 value2 ,1563 +metricName822,histogram,label1 value1 label2 value2 ,223 6702 1286 4526 890 +metricName823,histogram,label1 value1 label2 value2 label3 value3 ,536 10009 4404 1388 4217 +metricName824,counter,label1 value1 label2 value2 label3 value3 ,2397 +metricName825,summary,label1 value1 label2 value2 ,2777 3774 0.462295 0.435239 0.091195 +metricName826,counter,label1 value1 label2 value2 ,4231 +metricName827,gauge,label1 value1 label2 value2 label3 value3 ,278 +metricName828,gauge,label1 value1 ,3438 +metricName829,histogram,label1 value1 label2 value2 label3 value3 ,3626 14128 4537 4744 4847 +metricName830,summary,label1 value1 label2 value2 label3 value3 label4 value4 ,1440 745 0.705787 0.946197 0.291889 +metricName831,histogram,label1 value1 ,2110 10537 4012 2765 3760 +metricName832,counter,label1 value1 label2 value2 label3 value3 ,2464 +metricName833,histogram,label1 value1 ,4273 5914 3803 383 1728 +metricName834,histogram,label1 value1 label2 value2 label3 value3 ,4713 8454 1928 3206 3320 +metricName835,histogram,label1 value1 label2 value2 ,143 6419 2905 2863 651 +metricName836,summary,label1 value1 label2 value2 label3 value3 ,1478 3744 0.494905 0.495914 0.111406 +metricName837,counter,label1 value1 label2 value2 ,2409 +metricName838,summary,label1 value1 label2 value2 ,587 4089 0.591614 0.988117 0.859716 +metricName839,histogram,label1 value1 label2 value2 label3 value3 ,1540 12458 4685 4307 3466 +metricName840,histogram,label1 value1 label2 value2 label3 value3 label4 value4 ,3603 7994 2427 1352 4215 +metricName841,gauge,label1 value1 label2 value2 ,3051 +metricName842,summary,label1 value1 ,1378 4853 0.777352 0.447042 0.840525 +metricName843,summary,label1 value1 label2 value2 ,974 1316 0.022137 0.454529 0.688424 +metricName844,histogram,label1 value1 label2 value2 label3 value3 ,4991 8109 4786 1313 2010 +metricName845,gauge,label1 value1 ,4028 +metricName846,counter,label1 value1 label2 value2 ,1972 +metricName847,histogram,label1 value1 label2 value2 label3 value3 label4 value4 ,2827 6402 2250 1124 3028 +metricName848,histogram,label1 value1 ,2380 7574 4215 845 2514 +metricName849,summary,label1 value1 label2 value2 label3 value3 ,1604 4883 0.785264 0.223850 0.399089 +metricName850,counter,label1 value1 ,1630 +metricName851,summary,label1 value1 ,1421 588 0.197159 0.217708 0.340092 +metricName852,summary,label1 value1 label2 value2 ,4069 998 0.587748 0.079795 0.783240 +metricName853,summary,label1 value1 ,4689 1989 0.880292 0.911341 0.679902 +metricName854,gauge,label1 value1 label2 value2 label3 value3 label4 value4 ,4194 +metricName855,summary,label1 value1 label2 value2 ,540 2962 0.013576 0.996686 0.378782 +metricName856,summary,label1 value1 ,2250 4169 0.651106 0.975078 0.094877 +metricName857,summary,label1 value1 ,644 15 0.208840 0.760177 0.218487 +metricName858,gauge,label1 value1 label2 value2 label3 value3 label4 value4 ,4292 +metricName859,counter,label1 value1 label2 value2 ,2642 +metricName860,histogram,label1 value1 ,3839 5640 3638 147 1855 +metricName861,gauge,label1 value1 label2 value2 label3 value3 label4 value4 ,2745 +metricName862,counter,label1 value1 ,993 +metricName863,summary,label1 value1 label2 value2 ,6 601 0.277755 0.376920 0.273423 +metricName864,gauge,label1 value1 ,123 +metricName865,counter,label1 value1 label2 value2 label3 value3 label4 value4 ,4577 +metricName866,counter,label1 value1 label2 value2 label3 value3 ,2150 +metricName867,summary,label1 value1 label2 value2 label3 value3 label4 value4 ,3728 4540 0.412997 0.118779 0.638407 +metricName868,summary,label1 value1 label2 value2 label3 value3 label4 value4 ,3221 3348 0.679763 0.831696 0.996484 +metricName869,histogram,label1 value1 label2 value2 ,1235 9252 3192 1639 4421 +metricName870,counter,label1 value1 label2 value2 label3 value3 label4 value4 ,3304 +metricName871,histogram,label1 value1 ,301 3404 506 2616 282 +metricName872,histogram,label1 value1 label2 value2 label3 value3 label4 value4 ,317 5001 836 135 4030 +metricName873,gauge,label1 value1 ,3433 +metricName874,counter,label1 value1 ,3667 +metricName875,summary,label1 value1 label2 value2 ,4904 3574 0.961890 0.364669 0.554477 +metricName876,counter,label1 value1 ,2695 +metricName877,gauge,label1 value1 label2 value2 label3 value3 label4 value4 ,4846 +metricName878,counter,label1 value1 label2 value2 label3 value3 ,893 +metricName879,histogram,label1 value1 label2 value2 label3 value3 ,609 7318 3495 368 3455 +metricName880,gauge,label1 value1 label2 value2 label3 value3 label4 value4 ,4564 +metricName881,gauge,label1 value1 label2 value2 ,305 +metricName882,counter,label1 value1 label2 value2 label3 value3 label4 value4 ,2327 +metricName883,histogram,label1 value1 label2 value2 label3 value3 label4 value4 ,1933 5959 706 287 4966 +metricName884,gauge,label1 value1 label2 value2 label3 value3 ,619 +metricName885,gauge,label1 value1 label2 value2 label3 value3 label4 value4 ,3324 +metricName886,gauge,label1 value1 ,4947 +metricName887,counter,label1 value1 ,3912 +metricName888,histogram,label1 value1 label2 value2 ,1856 7342 3382 2972 988 +metricName889,summary,label1 value1 label2 value2 label3 value3 ,1289 968 0.905582 0.128165 0.925093 +metricName890,counter,label1 value1 label2 value2 label3 value3 ,2413 +metricName891,histogram,label1 value1 label2 value2 label3 value3 ,4311 6247 3824 1433 990 +metricName892,histogram,label1 value1 ,4462 5073 167 510 4396 +metricName893,histogram,label1 value1 label2 value2 label3 value3 label4 value4 ,2574 3554 1863 419 1272 +metricName894,gauge,label1 value1 label2 value2 ,3566 +metricName895,gauge,label1 value1 label2 value2 label3 value3 ,3436 +metricName896,histogram,label1 value1 label2 value2 label3 value3 ,2343 7557 3635 3600 322 +metricName897,counter,label1 value1 label2 value2 ,380 +metricName898,histogram,label1 value1 label2 value2 label3 value3 ,2970 6158 555 2204 3399 +metricName899,histogram,label1 value1 label2 value2 label3 value3 label4 value4 ,2875 8968 858 3979 4131 +metricName900,histogram,label1 value1 ,3404 5000 2894 269 1837 +metricName901,histogram,label1 value1 label2 value2 ,2515 7998 4344 57 3597 +metricName902,summary,label1 value1 label2 value2 label3 value3 ,4136 4499 0.496007 0.759766 0.872289 +metricName903,summary,label1 value1 ,3721 347 0.358662 0.852896 0.644543 +metricName904,counter,label1 value1 label2 value2 ,1436 +metricName905,counter,label1 value1 ,1324 +metricName906,summary,label1 value1 ,1491 1999 0.222471 0.704088 0.055945 +metricName907,gauge,label1 value1 label2 value2 label3 value3 ,4423 +metricName908,gauge,label1 value1 label2 value2 label3 value3 ,27 +metricName909,gauge,label1 value1 label2 value2 label3 value3 ,1395 +metricName910,histogram,label1 value1 label2 value2 label3 value3 label4 value4 ,3642 8322 4897 78 3347 +metricName911,gauge,label1 value1 ,4338 +metricName912,summary,label1 value1 label2 value2 ,815 227 0.770518 0.948649 0.745967 +metricName913,histogram,label1 value1 label2 value2 label3 value3 ,4192 5196 363 2855 1978 +metricName914,histogram,label1 value1 label2 value2 label3 value3 label4 value4 ,4456 5709 4632 326 751 +metricName915,summary,label1 value1 label2 value2 label3 value3 ,2283 4720 0.347287 0.757361 0.919107 +metricName916,counter,label1 value1 label2 value2 label3 value3 ,3688 +metricName917,histogram,label1 value1 label2 value2 label3 value3 label4 value4 ,2610 7455 2934 3209 1312 +metricName918,counter,label1 value1 label2 value2 label3 value3 ,250 +metricName919,histogram,label1 value1 label2 value2 ,3597 7132 593 1590 4949 +metricName920,histogram,label1 value1 ,884 4736 7 1473 3256 +metricName921,counter,label1 value1 label2 value2 ,4664 +metricName922,summary,label1 value1 label2 value2 label3 value3 ,1033 1468 0.871352 0.356543 0.760775 +metricName923,histogram,label1 value1 label2 value2 ,2611 6010 1875 3261 874 +metricName924,gauge,label1 value1 ,4492 +metricName925,counter,label1 value1 label2 value2 label3 value3 label4 value4 ,4190 +metricName926,gauge,label1 value1 ,4880 +metricName927,gauge,label1 value1 label2 value2 label3 value3 ,4859 +metricName928,counter,label1 value1 label2 value2 label3 value3 ,1873 +metricName929,summary,label1 value1 ,3121 2715 0.432670 0.251218 0.423908 +metricName930,histogram,label1 value1 label2 value2 label3 value3 label4 value4 ,3189 5982 1101 3117 1764 +metricName931,gauge,label1 value1 label2 value2 ,2601 +metricName932,summary,label1 value1 label2 value2 label3 value3 ,679 2469 0.119152 0.906488 0.052478 +metricName933,histogram,label1 value1 label2 value2 ,1896 6195 2957 2635 603 +metricName934,counter,label1 value1 ,3191 +metricName935,counter,label1 value1 label2 value2 label3 value3 label4 value4 ,3612 +metricName936,histogram,label1 value1 label2 value2 ,4311 10670 3793 3673 3204 +metricName937,gauge,label1 value1 label2 value2 label3 value3 ,3556 +metricName938,counter,label1 value1 label2 value2 label3 value3 ,431 +metricName939,summary,label1 value1 ,645 2659 0.098739 0.557471 0.370596 +metricName940,counter,label1 value1 label2 value2 label3 value3 label4 value4 ,4536 +metricName941,counter,label1 value1 label2 value2 ,4142 +metricName942,gauge,label1 value1 ,1996 +metricName943,counter,label1 value1 label2 value2 label3 value3 ,4800 +metricName944,histogram,label1 value1 label2 value2 ,4951 5470 3433 1231 806 +metricName945,counter,label1 value1 label2 value2 label3 value3 label4 value4 ,4766 +metricName946,gauge,label1 value1 label2 value2 label3 value3 ,4971 +metricName947,counter,label1 value1 label2 value2 label3 value3 ,369 +metricName948,histogram,label1 value1 label2 value2 label3 value3 label4 value4 ,320 12309 2392 4959 4958 +metricName949,counter,label1 value1 label2 value2 ,4262 +metricName950,counter,label1 value1 ,4715 +metricName951,counter,label1 value1 ,1433 +metricName952,histogram,label1 value1 label2 value2 ,2397 6423 4385 1046 992 +metricName953,counter,label1 value1 label2 value2 label3 value3 ,4096 +metricName954,gauge,label1 value1 label2 value2 label3 value3 label4 value4 ,3902 +metricName955,gauge,label1 value1 label2 value2 label3 value3 label4 value4 ,2134 +metricName956,histogram,label1 value1 label2 value2 ,1068 10507 3242 4860 2405 +metricName957,gauge,label1 value1 ,2574 +metricName958,summary,label1 value1 label2 value2 label3 value3 label4 value4 ,125 3770 0.273701 0.691439 0.092723 +metricName959,counter,label1 value1 ,4438 +metricName960,summary,label1 value1 ,4890 2944 0.338768 0.869016 0.328033 +metricName961,gauge,label1 value1 label2 value2 ,2860 +metricName962,gauge,label1 value1 label2 value2 ,982 +metricName963,summary,label1 value1 label2 value2 ,325 3141 0.872958 0.088949 0.527637 +metricName964,gauge,label1 value1 label2 value2 label3 value3 label4 value4 ,1787 +metricName965,summary,label1 value1 ,2857 1584 0.665994 0.763545 0.009762 +metricName966,gauge,label1 value1 label2 value2 label3 value3 ,4169 +metricName967,summary,label1 value1 label2 value2 ,4725 373 0.645099 0.437369 0.215756 +metricName968,gauge,label1 value1 label2 value2 ,2485 +metricName969,counter,label1 value1 label2 value2 ,3042 +metricName970,gauge,label1 value1 ,2512 +metricName971,histogram,label1 value1 label2 value2 label3 value3 label4 value4 ,2422 3626 1574 1506 546 +metricName972,histogram,label1 value1 label2 value2 label3 value3 ,2043 9649 1951 4156 3542 +metricName973,histogram,label1 value1 ,1900 6419 2295 2020 2104 +metricName974,counter,label1 value1 ,3192 +metricName975,gauge,label1 value1 ,933 +metricName976,histogram,label1 value1 label2 value2 label3 value3 ,2992 6096 2716 2610 770 +metricName977,histogram,label1 value1 label2 value2 label3 value3 label4 value4 ,3281 8691 2609 3418 2664 +metricName978,counter,label1 value1 label2 value2 label3 value3 label4 value4 ,1910 +metricName979,summary,label1 value1 label2 value2 ,1165 3223 0.538176 0.504841 0.764983 +metricName980,summary,label1 value1 ,487 1834 0.265149 0.172008 0.026464 +metricName981,gauge,label1 value1 label2 value2 label3 value3 label4 value4 ,3388 +metricName982,gauge,label1 value1 label2 value2 label3 value3 label4 value4 ,4972 +metricName983,histogram,label1 value1 label2 value2 ,2092 12522 4396 3657 4469 +metricName984,summary,label1 value1 label2 value2 ,1214 1422 0.617172 0.908526 0.944291 +metricName985,summary,label1 value1 ,2517 3876 0.369381 0.692843 0.489140 +metricName986,histogram,label1 value1 label2 value2 ,2786 6079 2274 1295 2510 +metricName987,histogram,label1 value1 label2 value2 ,3551 9124 4195 1724 3205 +metricName988,counter,label1 value1 label2 value2 label3 value3 label4 value4 ,4123 +metricName989,gauge,label1 value1 label2 value2 ,3293 +metricName990,gauge,label1 value1 label2 value2 label3 value3 ,651 +metricName991,summary,label1 value1 label2 value2 ,4576 4657 0.339332 0.218863 0.338013 +metricName992,histogram,label1 value1 label2 value2 ,1856 10133 3570 2646 3917 +metricName993,counter,label1 value1 ,560 +metricName994,summary,label1 value1 label2 value2 label3 value3 label4 value4 ,3461 2055 0.809468 0.509033 0.334647 +metricName995,summary,label1 value1 label2 value2 label3 value3 ,3197 686 0.528430 0.713213 0.573994 +metricName996,histogram,label1 value1 label2 value2 label3 value3 ,3922 6951 3797 1792 1362 +metricName997,summary,label1 value1 label2 value2 label3 value3 label4 value4 ,2798 4754 0.796812 0.018875 0.035746 +metricName998,counter,label1 value1 label2 value2 label3 value3 label4 value4 ,239 +metricName999,counter,label1 value1 ,4690 diff --git a/docker-compose.yaml b/docker-compose.yaml new file mode 100644 index 00000000000..47108e9590b --- /dev/null +++ b/docker-compose.yaml @@ -0,0 +1,27 @@ + # Collector + otel-col: + image: ${OTELCOL_IMG} + command: ["--config=/etc/otel-agent-config.yaml", "${OTELCOL_ARGS}"] + volumes: + - ./otel-agent-config.yaml:/etc/otel-agent-config.yaml + ports: + - "1777:1777" # pprof extension + - "8887:8888" # Prometheus metrics exposed by the agent + - "14268" # Jaeger receiver + - "55678" # OpenCensus receiver + - "55679:55679" # zpages extension + - "13133" # health_check + depends_on: + - otel-collector + + metrics-load-generator: + image: golang:1.14.7 + environment: + - GO111MODULE=on + - OTEL_ENDPOINT=otel-agent:55678 + volumes: + - ./otlp-load-generator/:/usr/src/ + command: ["bash", "-c", "go run /usr/src/main.go"] + depends_on: + - otel-col + diff --git a/exporter/prometheusremotewriteexporter/DESIGN.md b/exporter/prometheusremotewriteexporter/DESIGN.md index d2d6539c646..a85f7d838bc 100644 --- a/exporter/prometheusremotewriteexporter/DESIGN.md +++ b/exporter/prometheusremotewriteexporter/DESIGN.md @@ -1,5 +1,3 @@ - - # **OpenTelemetry Collector Prometheus Remote Write/Cortex Exporter Design** Authors: @huyan0, @danielbang907 diff --git a/exporter/prometheusremotewriteexporter/README.md b/exporter/prometheusremotewriteexporter/README.md index 6444368801a..29157053858 100644 --- a/exporter/prometheusremotewriteexporter/README.md +++ b/exporter/prometheusremotewriteexporter/README.md @@ -28,4 +28,4 @@ prometheusremotewrite: The full list of settings exposed for this exporter are documented [here](./config.go) with detailed sample configurations [here](./testdata/config.yaml). -_Here is a link to the overall project [design](https://github.com/open-telemetry/opentelemetry-collector/pull/1464)_ +_Here is a link to the overall project [design](https://github.com/open-telemetry/opentelemetry-collector/pull/1464)_ \ No newline at end of file diff --git a/exporter/prometheusremotewriteexporter/config.go b/exporter/prometheusremotewriteexporter/config.go index 2bfc6210918..4fd07afc19d 100644 --- a/exporter/prometheusremotewriteexporter/config.go +++ b/exporter/prometheusremotewriteexporter/config.go @@ -32,5 +32,7 @@ type Config struct { // See: https://prometheus.io/docs/practices/naming/#metric-names Namespace string `mapstructure:"namespace"` + AuthCfg map[string]string `mapstructure:"auth"` + HTTPClientSettings confighttp.HTTPClientSettings `mapstructure:",squash"` } diff --git a/exporter/prometheusremotewriteexporter/config_test.go b/exporter/prometheusremotewriteexporter/config_test.go index 73927b35cff..bb1e0dd4ae1 100644 --- a/exporter/prometheusremotewriteexporter/config_test.go +++ b/exporter/prometheusremotewriteexporter/config_test.go @@ -67,7 +67,10 @@ func Test_loadConfig(t *testing.T) { MaxElapsedTime: 10 * time.Minute, }, Namespace: "test-space", - + AuthCfg: map[string]string{ + "region": "us-east-2", + "service": "execute-api", + }, HTTPClientSettings: confighttp.HTTPClientSettings{ Endpoint: "localhost:8888", TLSSetting: configtls.TLSClientSetting{ diff --git a/exporter/prometheusremotewriteexporter/exporter.go b/exporter/prometheusremotewriteexporter/exporter.go index c63e051fd66..c35ba02dea3 100644 --- a/exporter/prometheusremotewriteexporter/exporter.go +++ b/exporter/prometheusremotewriteexporter/exporter.go @@ -11,18 +11,28 @@ // 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. - -// Note: implementation for this class is in a separate PR package prometheusremotewriteexporter import ( + "bufio" + "bytes" "context" "errors" + "io" "net/http" "net/url" + "strconv" + "strings" "sync" + "github.com/gogo/protobuf/proto" + "github.com/golang/snappy" + "github.com/prometheus/prometheus/prompb" + "go.opentelemetry.io/collector/consumer/pdata" + "go.opentelemetry.io/collector/consumer/pdatautil" + "go.opentelemetry.io/collector/internal/data" + otlp "go.opentelemetry.io/collector/internal/data/opentelemetry-proto-gen/metrics/v1" ) // prwExporter converts OTLP metrics to Prometheus remote write TimeSeries and sends them to a remote endpoint @@ -68,5 +78,271 @@ func (prwe *prwExporter) shutdown(context.Context) error { // TimeSeries, validates and handles each individual metric, adding the converted TimeSeries to the map, and finally // exports the map. func (prwe *prwExporter) pushMetrics(ctx context.Context, md pdata.Metrics) (int, error) { - return 0, nil + + prwe.wg.Add(1) + defer prwe.wg.Done() + select { + case <-prwe.closeChan: + return pdatautil.MetricCount(md), errors.New("shutdown has been called") + default: + tsMap := map[string]*prompb.TimeSeries{} + dropped := 0 + errs := []string{} + + resourceMetrics := data.MetricDataToOtlp(pdatautil.MetricsToInternalMetrics(md)) + for _, r := range resourceMetrics { + for _, instMetrics := range r.InstrumentationLibraryMetrics { + // TODO: decide if instrumentation library information should be exported as labels + for _, metric := range instMetrics.Metrics { + // check for valid type and temporality combination + if ok := validateMetrics(metric.MetricDescriptor); !ok { + dropped++ + errs = append(errs, "invalid temporality and type combination") + continue + } + // handle individual metric based on type + switch metric.GetMetricDescriptor().GetType() { + case otlp.MetricDescriptor_MONOTONIC_INT64, otlp.MetricDescriptor_INT64, + otlp.MetricDescriptor_MONOTONIC_DOUBLE, otlp.MetricDescriptor_DOUBLE: + if err := prwe.handleScalarMetric(tsMap, metric); err != nil { + errs = append(errs, err.Error()) + } + case otlp.MetricDescriptor_HISTOGRAM: + if err := prwe.handleHistogramMetric(tsMap, metric); err != nil { + errs = append(errs, err.Error()) + } + case otlp.MetricDescriptor_SUMMARY: + if err := prwe.handleSummaryMetric(tsMap, metric); err != nil { + errs = append(errs, err.Error()) + } + } + } + } + } + + if err := prwe.export(ctx, tsMap); err != nil { + return pdatautil.MetricCount(md), err + } + + if dropped != 0 { + return dropped, errors.New(strings.Join(errs, "\n")) + } + + return 0, nil + } +} + +// handleScalarMetric processes data points in a single OTLP scalar metric by adding the each point as a Sample into +// its corresponding TimeSeries in tsMap. +// tsMap and metric cannot be nil, and metric must have a non-nil descriptor +func (prwe *prwExporter) handleScalarMetric(tsMap map[string]*prompb.TimeSeries, metric *otlp.Metric) error { + // add check for nil + + mType := metric.MetricDescriptor.Type + + switch mType { + // int points + case otlp.MetricDescriptor_MONOTONIC_INT64, otlp.MetricDescriptor_INT64: + if metric.Int64DataPoints == nil { + return errors.New("nil data point field in metric" + metric.GetMetricDescriptor().Name) + } + + for _, pt := range metric.Int64DataPoints { + + // create parameters for addSample + name := getPromMetricName(metric.GetMetricDescriptor(), prwe.namespace) + labels := createLabelSet(pt.GetLabels(), nameStr, name) + sample := &prompb.Sample{ + Value: float64(pt.Value), + // convert ns to ms + Timestamp: convertTimeStamp(pt.TimeUnixNano), + } + + addSample(tsMap, sample, labels, metric.GetMetricDescriptor().GetType()) + } + return nil + + // double points + case otlp.MetricDescriptor_MONOTONIC_DOUBLE, otlp.MetricDescriptor_DOUBLE: + if metric.DoubleDataPoints == nil { + return errors.New("nil data point field in metric" + metric.GetMetricDescriptor().Name) + } + for _, pt := range metric.DoubleDataPoints { + + // create parameters for addSample + name := getPromMetricName(metric.GetMetricDescriptor(), prwe.namespace) + labels := createLabelSet(pt.GetLabels(), nameStr, name) + sample := &prompb.Sample{ + Value: pt.Value, + Timestamp: convertTimeStamp(pt.TimeUnixNano), + } + + addSample(tsMap, sample, labels, metric.GetMetricDescriptor().GetType()) + } + return nil + } + + return errors.New("invalid metric type: wants int or double data points") +} + +// handleHistogramMetric processes data points in a single OTLP histogram metric by mapping the sum, count and each +// bucket of every data point as a Sample, and adding each Sample to its corresponding TimeSeries. +// tsMap and metric cannot be nil. +func (prwe *prwExporter) handleHistogramMetric(tsMap map[string]*prompb.TimeSeries, metric *otlp.Metric) error { + + if metric.HistogramDataPoints == nil { + return errors.New("invalid metric type: wants histogram points") + } + + for _, pt := range metric.HistogramDataPoints { + + time := convertTimeStamp(pt.TimeUnixNano) + mType := metric.GetMetricDescriptor().GetType() + + // sum, count, and buckets of the histogram should append suffix to baseName + baseName := getPromMetricName(metric.GetMetricDescriptor(), prwe.namespace) + + // treat sum as sample in an individual TimeSeries + sum := &prompb.Sample{ + Value: pt.GetSum(), + Timestamp: time, + } + sumlabels := createLabelSet(pt.GetLabels(), nameStr, baseName+sumStr) + addSample(tsMap, sum, sumlabels, mType) + + // treat count as a sample in an individual TimeSeries + count := &prompb.Sample{ + Value: float64(pt.GetCount()), + Timestamp: time, + } + countlabels := createLabelSet(pt.GetLabels(), nameStr, baseName+countStr) + addSample(tsMap, count, countlabels, mType) + + // count for +Inf bound + var totalCount uint64 + + // process each bucket + for le, bk := range pt.GetBuckets() { + bucket := &prompb.Sample{ + Value: float64(bk.Count), + Timestamp: time, + } + boundStr := strconv.FormatFloat(pt.GetExplicitBounds()[le], 'f', -1, 64) + labels := createLabelSet(pt.GetLabels(), nameStr, baseName+bucketStr, leStr, boundStr) + addSample(tsMap, bucket, labels, mType) + + totalCount += bk.GetCount() + } + + infBucket := &prompb.Sample{ + Value: float64(totalCount), + Timestamp: time, + } + inflabels := createLabelSet(pt.GetLabels(), nameStr, baseName+bucketStr, leStr, pInfStr) + addSample(tsMap, infBucket, inflabels, mType) + } + return nil +} + +// handleSummaryMetric processes data points in a single OTLP summary metric by mapping the sum, count and each +// quantile of every data point as a Sample, and adding each Sample to its corresponding TimeSeries. +// tsMap and metric cannot be nil. +func (prwe *prwExporter) handleSummaryMetric(tsMap map[string]*prompb.TimeSeries, metric *otlp.Metric) error { + + if metric.SummaryDataPoints == nil { + return errors.New("invalid metric type: wants summary points") + } + + for _, pt := range metric.SummaryDataPoints { + + time := convertTimeStamp(pt.TimeUnixNano) + mType := metric.GetMetricDescriptor().GetType() + + // sum and count of the Summary should append suffix to baseName + baseName := getPromMetricName(metric.GetMetricDescriptor(), prwe.namespace) + + // treat sum as sample in an individual TimeSeries + sum := &prompb.Sample{ + Value: pt.GetSum(), + Timestamp: time, + } + sumlabels := createLabelSet(pt.GetLabels(), nameStr, baseName+sumStr) + addSample(tsMap, sum, sumlabels, mType) + + // treat count as a sample in an individual TimeSeries + count := &prompb.Sample{ + Value: float64(pt.GetCount()), + Timestamp: time, + } + countlabels := createLabelSet(pt.GetLabels(), nameStr, baseName+countStr) + addSample(tsMap, count, countlabels, mType) + + // process each percentile/quantile + for _, qt := range pt.GetPercentileValues() { + quantile := &prompb.Sample{ + Value: qt.Value, + Timestamp: time, + } + percentileStr := strconv.FormatFloat(qt.Percentile, 'f', -1, 64) + qtlabels := createLabelSet(pt.GetLabels(), nameStr, baseName, quantileStr, percentileStr) + addSample(tsMap, quantile, qtlabels, mType) + } + } + return nil +} + +// Because we are adhering closely to the Remote Write API, we must Export a +// Snappy-compressed WriteRequest instance of the TimeSeries Metrics in order +// for the Remote Write Endpoint to properly receive our Metrics data. +func (prwe *prwExporter) export(ctx context.Context, tsMap map[string]*prompb.TimeSeries) error { + //Calls the helper function to convert the TsMap to the desired format + req, err := wrapTimeSeries(tsMap) + if err != nil { + return err + } + + //Uses proto.Marshal to convert the WriteRequest into wire format (bytes array) + data, err := proto.Marshal(req) + if err != nil { + return err + } + buf := make([]byte, len(data), cap(data)) + //Makes use of the snappy compressor, as we are emulating the Remote Write package + compressedData := snappy.Encode(buf, data) + + //Create the HTTP POST request to send to the endpoint + httpReq, err := http.NewRequest("POST", prwe.endpointURL.String(), bytes.NewReader(compressedData)) + if err != nil { + return err + } + + // Add necessary headers specified by: + // https://cortexmetrics.io/docs/apis/#remote-api + httpReq.Header.Add("Content-Encoding", "snappy") + httpReq.Header.Set("User-Agent", "otel-collector") + httpReq.Header.Set("Content-Type", "application/x-protobuf") + httpReq.Header.Set("X-Prometheus-Remote-Write-Version", "0.1.0") + // httpReq.Header.Set("Content-Length", strconv.Itoa(bytes.NewReader(compressedData).Len())) + + //Changing context of the httpreq to global context + httpReq = httpReq.WithContext(ctx) + + _, cancel := context.WithTimeout(context.Background(), prwe.client.Timeout) + defer cancel() + + httpResp, err := prwe.client.Do(httpReq) + if err != nil { + return err + } + + //Only even status codes < 400 are okay + if httpResp.StatusCode/100 != 2 || httpResp.StatusCode >= 400 { + scanner := bufio.NewScanner(io.LimitReader(httpResp.Body, 256)) + line := "" + if scanner.Scan() { + line = scanner.Text() + } + err = errors.New("server returned HTTP status: " + httpResp.Status + ", " + line) + } + return err } diff --git a/exporter/prometheusremotewriteexporter/exporter_test.go b/exporter/prometheusremotewriteexporter/exporter_test.go index fcdb771b020..c0083828b88 100644 --- a/exporter/prometheusremotewriteexporter/exporter_test.go +++ b/exporter/prometheusremotewriteexporter/exporter_test.go @@ -12,24 +12,304 @@ // See the License for the specific language governing permissions and // limitations under the License. -// Note: implementation for this class is in a separate PR package prometheusremotewriteexporter import ( "context" + "io/ioutil" "net/http" + "net/http/httptest" + "net/url" + "strconv" "sync" "testing" + proto "github.com/gogo/protobuf/proto" + "github.com/golang/snappy" + "github.com/prometheus/prometheus/prompb" "github.com/stretchr/testify/assert" "github.com/stretchr/testify/require" "go.opentelemetry.io/collector/config/confighttp" "go.opentelemetry.io/collector/config/configmodels" "go.opentelemetry.io/collector/consumer/pdata" + "go.opentelemetry.io/collector/consumer/pdatautil" "go.opentelemetry.io/collector/exporter/exporterhelper" + "go.opentelemetry.io/collector/internal/data" + otlp "go.opentelemetry.io/collector/internal/data/opentelemetry-proto-gen/metrics/v1" + "go.opentelemetry.io/collector/internal/data/testdata" ) +// TODO: add bucket and histogram test cases for Test_PushMetrics + +// Test_handleScalarMetric checks whether data points within a single scalar metric can be added to a map of +// TimeSeries correctly. +// Test cases are two data point belonging to the same TimeSeries, two data point belonging different TimeSeries, +// and nil data points case. +func Test_handleScalarMetric(t *testing.T) { + sameTs := map[string]*prompb.TimeSeries{ + // string signature of the data point is the key of the map + typeMonotonicInt64 + "-__name__-same_ts_int_points_total" + lb1Sig: getTimeSeries( + getPromLabels(label11, value11, label12, value12, nameStr, "same_ts_int_points_total"), + getSample(float64(intVal1), msTime1), + getSample(float64(intVal2), msTime1)), + } + differentTs := map[string]*prompb.TimeSeries{ + typeMonotonicDouble + "-__name__-different_ts_double_points_total" + lb1Sig: getTimeSeries( + getPromLabels(label11, value11, label12, value12, nameStr, "different_ts_double_points_total"), + getSample(floatVal1, msTime1)), + typeMonotonicDouble + "-__name__-different_ts_double_points_total" + lb2Sig: getTimeSeries( + getPromLabels(label21, value21, label22, value22, nameStr, "different_ts_double_points_total"), + getSample(floatVal2, msTime2)), + } + + tests := []struct { + name string + m *otlp.Metric + returnError bool + want map[string]*prompb.TimeSeries + }{ + { + "invalid_nil_array", + &otlp.Metric{ + MetricDescriptor: getDescriptor("invalid_nil_array", monotonicInt64Comb, validCombinations), + Int64DataPoints: nil, + DoubleDataPoints: nil, + HistogramDataPoints: nil, + SummaryDataPoints: nil, + }, + true, + map[string]*prompb.TimeSeries{}, + }, + { + "same_ts_int_points", + &otlp.Metric{ + MetricDescriptor: getDescriptor("same_ts_int_points", monotonicInt64Comb, validCombinations), + Int64DataPoints: []*otlp.Int64DataPoint{ + getIntDataPoint(lbs1, intVal1, time1), + getIntDataPoint(lbs1, intVal2, time1), + }, + DoubleDataPoints: nil, + HistogramDataPoints: nil, + SummaryDataPoints: nil, + }, + false, + sameTs, + }, + { + "different_ts_double_points", + &otlp.Metric{ + MetricDescriptor: getDescriptor("different_ts_double_points", monotonicDoubleComb, validCombinations), + Int64DataPoints: nil, + DoubleDataPoints: []*otlp.DoubleDataPoint{ + getDoubleDataPoint(lbs1, floatVal1, time1), + getDoubleDataPoint(lbs2, floatVal2, time2), + }, + HistogramDataPoints: nil, + SummaryDataPoints: nil, + }, + false, + differentTs, + }, + } + // run tests + for _, tt := range tests { + t.Run(tt.name, func(t *testing.T) { + tsMap := map[string]*prompb.TimeSeries{} + prw := &prwExporter{} + ok := prw.handleScalarMetric(tsMap, tt.m) + if tt.returnError { + assert.Error(t, ok) + return + } + assert.Exactly(t, len(tt.want), len(tsMap)) + for k, v := range tsMap { + require.NotNil(t, tt.want[k]) + assert.ElementsMatch(t, tt.want[k].Labels, v.Labels) + assert.ElementsMatch(t, tt.want[k].Samples, v.Samples) + } + }) + } +} + +// Test_handleHistogramMetric checks whether data points(sum, count, buckets) within a single Histogram metric can be +// added to a map of TimeSeries correctly. +// Test cases are a histogram data point with two buckets and nil data points case. +func Test_handleHistogramMetric(t *testing.T) { + sum := "sum" + count := "count" + bucket1 := "bucket1" + bucket2 := "bucket2" + bucketInf := "bucketInf" + histPoint := getHistogramDataPoint( + lbs1, + time1, + floatVal2, + uint64(intVal2), []float64{floatVal1, floatVal2}, + []uint64{uint64(intVal1), uint64(intVal1)}) + + // string signature of the data point is the key of the map + sigs := map[string]string{ + sum: typeHistogram + "-" + nameStr + "-" + name1 + "_sum" + lb1Sig, + count: typeHistogram + "-" + nameStr + "-" + name1 + "_count" + lb1Sig, + bucket1: typeHistogram + "-" + nameStr + "-" + name1 + "_bucket" + "-" + "le-" + + strconv.FormatFloat(floatVal1, 'f', -1, 64) + lb1Sig, + bucket2: typeHistogram + "-" + nameStr + "-" + name1 + "_bucket" + "-" + "le-" + + strconv.FormatFloat(floatVal2, 'f', -1, 64) + lb1Sig, + bucketInf: typeHistogram + "-" + nameStr + "-" + name1 + "_bucket" + "-" + "le-" + + "+Inf" + lb1Sig, + } + labels := map[string][]prompb.Label{ + sum: append(promLbs1, getPromLabels(nameStr, name1+"_sum")...), + count: append(promLbs1, getPromLabels(nameStr, name1+"_count")...), + bucket1: append(promLbs1, getPromLabels(nameStr, name1+"_bucket", "le", + strconv.FormatFloat(floatVal1, 'f', -1, 64))...), + bucket2: append(promLbs1, getPromLabels(nameStr, name1+"_bucket", "le", + strconv.FormatFloat(floatVal2, 'f', -1, 64))...), + bucketInf: append(promLbs1, getPromLabels(nameStr, name1+"_bucket", "le", + "+Inf")...), + } + tests := []struct { + name string + m otlp.Metric + returnError bool + want map[string]*prompb.TimeSeries + }{ + { + "invalid_nil_array", + otlp.Metric{ + MetricDescriptor: getDescriptor("invalid_nil_array", histogramComb, validCombinations), + Int64DataPoints: nil, + DoubleDataPoints: nil, + HistogramDataPoints: nil, + SummaryDataPoints: nil, + }, + true, + map[string]*prompb.TimeSeries{}, + }, + { + "single_histogram_point", + otlp.Metric{ + MetricDescriptor: getDescriptor(name1+"", histogramComb, validCombinations), + Int64DataPoints: nil, + DoubleDataPoints: nil, + HistogramDataPoints: []*otlp.HistogramDataPoint{histPoint}, + SummaryDataPoints: nil, + }, + false, + map[string]*prompb.TimeSeries{ + sigs[sum]: getTimeSeries(labels[sum], getSample(floatVal2, msTime1)), + sigs[count]: getTimeSeries(labels[count], getSample(float64(intVal2), msTime1)), + sigs[bucket1]: getTimeSeries(labels[bucket1], getSample(float64(intVal1), msTime1)), + sigs[bucket2]: getTimeSeries(labels[bucket2], getSample(float64(intVal1), msTime1)), + sigs[bucketInf]: getTimeSeries(labels[bucketInf], getSample(float64(intVal2), msTime1)), + }, + }, + } + + // run tests + for _, tt := range tests { + t.Run(tt.name, func(t *testing.T) { + tsMap := map[string]*prompb.TimeSeries{} + prw := &prwExporter{} + ok := prw.handleHistogramMetric(tsMap, &tt.m) + if tt.returnError { + assert.Error(t, ok) + return + } + assert.Exactly(t, len(tt.want), len(tsMap)) + for k, v := range tsMap { + require.NotNil(t, tt.want[k], k) + assert.ElementsMatch(t, tt.want[k].Labels, v.Labels) + assert.ElementsMatch(t, tt.want[k].Samples, v.Samples) + } + }) + } +} + +// Test_handleSummaryMetric checks whether data points(sum, count, quantiles) within a single Summary metric can be +// added to a map of TimeSeries correctly. +// Test cases are a summary data point with two quantiles and nil data points case. +func Test_handleSummaryMetric(t *testing.T) { + sum := "sum" + count := "count" + q1 := "quantile1" + q2 := "quantile2" + // string signature is the key of the map + sigs := map[string]string{ + sum: typeSummary + "-" + nameStr + "-" + name1 + "_sum" + lb1Sig, + count: typeSummary + "-" + nameStr + "-" + name1 + "_count" + lb1Sig, + q1: typeSummary + "-" + nameStr + "-" + name1 + "-" + "quantile-" + + strconv.FormatFloat(floatVal1, 'f', -1, 64) + lb1Sig, + q2: typeSummary + "-" + nameStr + "-" + name1 + "-" + "quantile-" + + strconv.FormatFloat(floatVal2, 'f', -1, 64) + lb1Sig, + } + labels := map[string][]prompb.Label{ + sum: append(promLbs1, getPromLabels(nameStr, name1+"_sum")...), + count: append(promLbs1, getPromLabels(nameStr, name1+"_count")...), + q1: append(promLbs1, getPromLabels(nameStr, name1, "quantile", + strconv.FormatFloat(floatVal1, 'f', -1, 64))...), + q2: append(promLbs1, getPromLabels(nameStr, name1, "quantile", + strconv.FormatFloat(floatVal2, 'f', -1, 64))...), + } + + summaryPoint := getSummaryDataPoint(lbs1, time1, floatVal2, uint64(intVal2), []float64{floatVal1, floatVal2}, []float64{floatVal1, floatVal1}) + + tests := []struct { + name string + m otlp.Metric + returnError bool + want map[string]*prompb.TimeSeries + }{ + { + "invalid_nil_array", + otlp.Metric{ + MetricDescriptor: getDescriptor("invalid_nil_array", summaryComb, validCombinations), + Int64DataPoints: nil, + DoubleDataPoints: nil, + HistogramDataPoints: nil, + SummaryDataPoints: nil, + }, + true, + map[string]*prompb.TimeSeries{}, + }, + { + "single_summary_point", + otlp.Metric{ + MetricDescriptor: getDescriptor(name1, summaryComb, validCombinations), + Int64DataPoints: nil, + DoubleDataPoints: nil, + HistogramDataPoints: nil, + SummaryDataPoints: []*otlp.SummaryDataPoint{summaryPoint}, + }, + false, + map[string]*prompb.TimeSeries{ + sigs[sum]: getTimeSeries(labels[sum], getSample(floatVal2, msTime1)), + sigs[count]: getTimeSeries(labels[count], getSample(float64(intVal2), msTime1)), + sigs[q1]: getTimeSeries(labels[q1], getSample(float64(intVal1), msTime1)), + sigs[q2]: getTimeSeries(labels[q2], getSample(float64(intVal1), msTime1)), + }, + }, + } + for _, tt := range tests { + t.Run(tt.name, func(t *testing.T) { + tsMap := map[string]*prompb.TimeSeries{} + prw := &prwExporter{} + ok := prw.handleSummaryMetric(tsMap, &tt.m) + if tt.returnError { + assert.Error(t, ok) + return + } + assert.Equal(t, len(tt.want), len(tsMap)) + for k, v := range tsMap { + require.NotNil(t, tt.want[k], k) + assert.ElementsMatch(t, tt.want[k].Labels, v.Labels) + assert.ElementsMatch(t, tt.want[k].Samples, v.Samples) + } + }) + } +} + // Test_newPrwExporter checks that a new exporter instance with non-nil fields is initialized func Test_newPrwExporter(t *testing.T) { config := &Config{ @@ -77,6 +357,7 @@ func Test_newPrwExporter(t *testing.T) { for _, tt := range tests { t.Run(tt.name, func(t *testing.T) { prwe, err := newPrwExporter(tt.namespace, tt.endpoint, tt.client) + if tt.returnError { assert.Error(t, err) return @@ -97,18 +378,361 @@ func Test_shutdown(t *testing.T) { wg: new(sync.WaitGroup), closeChan: make(chan struct{}), } + wg := new(sync.WaitGroup) + errChan := make(chan error, 5) err := prwe.shutdown(context.Background()) - assert.NoError(t, err) + require.NoError(t, err) + errChan = make(chan error, 5) + for i := 0; i < 5; i++ { + wg.Add(1) + go func() { + defer wg.Done() + _, ok := prwe.pushMetrics(context.Background(), + pdatautil.MetricsFromInternalMetrics(testdata.GenerateMetricDataEmpty())) + errChan <- ok + }() + } + wg.Wait() + close(errChan) + for ok := range errChan { + assert.Error(t, ok) + } +} + +//Test whether or not the Server receives the correct TimeSeries. +//Currently considering making this test an iterative for loop of multiple TimeSeries +//Much akin to Test_pushMetrics +func Test_export(t *testing.T) { + //First we will instantiate a dummy TimeSeries instance to pass into both the export call and compare the http request + labels := getPromLabels(label11, value11, label12, value12, label21, value21, label22, value22) + sample1 := getSample(floatVal1, msTime1) + sample2 := getSample(floatVal2, msTime2) + ts1 := getTimeSeries(labels, sample1, sample2) + handleFunc := func(w http.ResponseWriter, r *http.Request, code int) { + //The following is a handler function that reads the sent httpRequest, unmarshals, and checks if the WriteRequest + //preserves the TimeSeries data correctly + body, err := ioutil.ReadAll(r.Body) + if err != nil { + t.Fatal(err) + } + require.NotNil(t, body) + //Receives the http requests and unzip, unmarshals, and extracts TimeSeries + assert.Equal(t, "0.1.0", r.Header.Get("X-Prometheus-Remote-Write-Version")) + assert.Equal(t, "snappy", r.Header.Get("Content-Encoding")) + writeReq := &prompb.WriteRequest{} + unzipped := []byte{} + dest, err := snappy.Decode(unzipped, body) + require.NoError(t, err) + + ok := proto.Unmarshal(dest, writeReq) + require.NoError(t, ok) + + assert.EqualValues(t, 1, len(writeReq.Timeseries)) + require.NotNil(t, writeReq.GetTimeseries()) + assert.Equal(t, *ts1, writeReq.GetTimeseries()[0]) + w.WriteHeader(code) + } + + // Create in test table format to check if different HTTP response codes or server errors + // are properly identified + tests := []struct { + name string + ts prompb.TimeSeries + serverUp bool + httpResponseCode int + returnError bool + }{ + {"success_case", + *ts1, + true, + http.StatusAccepted, + false, + }, + { + "server_no_response_case", + *ts1, + false, + http.StatusAccepted, + true, + }, { + "error_status_code_case", + *ts1, + true, + http.StatusForbidden, + true, + }, + } + + for _, tt := range tests { + t.Run(tt.name, func(t *testing.T) { + server := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { + if handleFunc != nil { + handleFunc(w, r, tt.httpResponseCode) + } + })) + defer server.Close() + serverURL, uErr := url.Parse(server.URL) + assert.NoError(t, uErr) + if !tt.serverUp { + server.Close() + } + err := runExportPipeline(t, ts1, serverURL) + if tt.returnError { + assert.Error(t, err) + return + } + assert.NoError(t, err) + }) + } +} + +func runExportPipeline(t *testing.T, ts *prompb.TimeSeries, endpoint *url.URL) error { + //First we will construct a TimeSeries array from the testutils package + testmap := make(map[string]*prompb.TimeSeries) + testmap["test"] = ts + + HTTPClient := http.DefaultClient + //after this, instantiate a CortexExporter with the current HTTP client and endpoint set to passed in endpoint + prwe, err := newPrwExporter("test", endpoint.String(), HTTPClient) + if err != nil { + return err + } + err = prwe.export(context.Background(), testmap) + return err } // Test_pushMetrics checks the number of TimeSeries received by server and the number of metrics dropped is the same as // expected func Test_pushMetrics(t *testing.T) { - prwe := &prwExporter{ - wg: new(sync.WaitGroup), - closeChan: make(chan struct{}), + + noTempBatch := pdatautil.MetricsFromInternalMetrics(testdata.GenerateMetricDataManyMetricsSameResource(10)) + invalidTypeBatch := pdatautil.MetricsFromInternalMetrics(testdata.GenerateMetricDataMetricTypeInvalid()) + nilDescBatch := pdatautil.MetricsFromInternalMetrics(testdata.GenerateMetricDataNilMetricDescriptor()) + + // 10 counter metrics, 2 points in each. Two TimeSeries in total + batch := testdata.GenerateMetricDataManyMetricsSameResource(10) + setCumulative(&batch) + scalarBatch := pdatautil.MetricsFromInternalMetrics(batch) + + nilBatch1 := testdata.GenerateMetricDataManyMetricsSameResource(10) + nilBatch2 := testdata.GenerateMetricDataManyMetricsSameResource(10) + nilBatch3 := testdata.GenerateMetricDataManyMetricsSameResource(10) + nilBatch4 := testdata.GenerateMetricDataManyMetricsSameResource(10) + + setCumulative(&nilBatch1) + setCumulative(&nilBatch2) + setCumulative(&nilBatch3) + setCumulative(&nilBatch4) + + setDataPointToNil(&nilBatch1, typeMonotonicInt64) + setType(&nilBatch2, typeMonotonicDouble) + setType(&nilBatch3, typeHistogram) + setType(&nilBatch4, typeSummary) + + nilIntDataPointsBatch := pdatautil.MetricsFromInternalMetrics(nilBatch1) + nilDoubleDataPointsBatch := pdatautil.MetricsFromInternalMetrics(nilBatch2) + nilHistogramDataPointsBatch := pdatautil.MetricsFromInternalMetrics(nilBatch3) + nilSummaryDataPointsBatch := pdatautil.MetricsFromInternalMetrics(nilBatch4) + + hist := data.MetricDataToOtlp(testdata.GenerateMetricDataOneMetric()) + hist[0].InstrumentationLibraryMetrics[0].Metrics[0] = &otlp.Metric{ + MetricDescriptor: getDescriptor("hist_test", histogramComb, validCombinations), + HistogramDataPoints: []*otlp.HistogramDataPoint{getHistogramDataPoint( + lbs1, + time1, + floatVal1, + uint64(intVal1), + []float64{floatVal1}, + []uint64{uint64(intVal1)}, + ), + }, + } + + histBatch := pdatautil.MetricsFromInternalMetrics(data.MetricDataFromOtlp(hist)) + checkFunc := func(t *testing.T, r *http.Request, expected int) { + body, err := ioutil.ReadAll(r.Body) + if err != nil { + t.Fatal(err) + } + + buf := make([]byte, len(body)) + dest, err := snappy.Decode(buf, body) + assert.Equal(t, "0.1.0", r.Header.Get("x-prometheus-remote-write-version")) + assert.Equal(t, "snappy", r.Header.Get("content-encoding")) + assert.NotNil(t, r.Header.Get("tenant-id")) + require.NoError(t, err) + wr := &prompb.WriteRequest{} + ok := proto.Unmarshal(dest, wr) + require.Nil(t, ok) + assert.EqualValues(t, expected, len(wr.Timeseries)) + } + + summary := data.MetricDataToOtlp(testdata.GenerateMetricDataOneMetric()) + summary[0].InstrumentationLibraryMetrics[0].Metrics[0] = &otlp.Metric{ + MetricDescriptor: getDescriptor("summary_test", summaryComb, validCombinations), + SummaryDataPoints: []*otlp.SummaryDataPoint{getSummaryDataPoint( + lbs1, + time1, + floatVal1, + uint64(intVal1), + []float64{floatVal1}, + []float64{floatVal2}, + ), + }, + } + summaryBatch := pdatautil.MetricsFromInternalMetrics(data.MetricDataFromOtlp(summary)) + + tests := []struct { + name string + md *pdata.Metrics + reqTestFunc func(t *testing.T, r *http.Request, expected int) + expected int + httpResponseCode int + numDroppedTimeSeries int + returnErr bool + }{ + { + "invalid_type_case", + &invalidTypeBatch, + nil, + 0, + http.StatusAccepted, + pdatautil.MetricCount(invalidTypeBatch), + true, + }, + { + "nil_desc_case", + &nilDescBatch, + nil, + 0, + http.StatusAccepted, + pdatautil.MetricCount(nilDescBatch), + true, + }, + { + "nil_int_point_case", + &nilIntDataPointsBatch, + nil, + 0, + http.StatusAccepted, + pdatautil.MetricCount(nilIntDataPointsBatch), + true, + }, + { + "nil_double_point_case", + &nilDoubleDataPointsBatch, + nil, + 0, + http.StatusAccepted, + pdatautil.MetricCount(nilDoubleDataPointsBatch), + true, + }, + { + "nil_histogram_point_case", + &nilHistogramDataPointsBatch, + nil, + 0, + http.StatusAccepted, + pdatautil.MetricCount(nilHistogramDataPointsBatch), + true, + }, + { + "nil_summary_point_case", + &nilSummaryDataPointsBatch, + nil, + 0, + http.StatusAccepted, + pdatautil.MetricCount(nilSummaryDataPointsBatch), + true, + }, + { + "no_temp_case", + &noTempBatch, + nil, + 0, + http.StatusAccepted, + pdatautil.MetricCount(noTempBatch), + true, + }, + { + "http_error_case", + &noTempBatch, + nil, + 0, + http.StatusForbidden, + pdatautil.MetricCount(noTempBatch), + true, + }, + { + "scalar_case", + &scalarBatch, + checkFunc, + 2, + http.StatusAccepted, + 0, + false, + }, + {"histogram_case", + &histBatch, + checkFunc, + 4, + http.StatusAccepted, + 0, + false, + }, + {"summary_case", + &summaryBatch, + checkFunc, + 3, + http.StatusAccepted, + 0, + false, + }, + } + + for _, tt := range tests { + t.Run(tt.name, func(t *testing.T) { + server := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { + if tt.reqTestFunc != nil { + tt.reqTestFunc(t, r, tt.expected) + } + w.WriteHeader(tt.httpResponseCode) + })) + + defer server.Close() + + serverURL, uErr := url.Parse(server.URL) + assert.NoError(t, uErr) + + config := &Config{ + ExporterSettings: configmodels.ExporterSettings{ + TypeVal: "prometheusremotewrite", + NameVal: "prometheusremotewrite", + }, + Namespace: "", + + HTTPClientSettings: confighttp.HTTPClientSettings{ + Endpoint: "http://some.url:9411/api/prom/push", + // We almost read 0 bytes, so no need to tune ReadBufferSize. + ReadBufferSize: 0, + WriteBufferSize: 512 * 1024, + }, + } + assert.NotNil(t, config) + // c, err := config.HTTPClientSettings.ToClient() + // assert.Nil(t, err) + c := http.DefaultClient + prwe, nErr := newPrwExporter(config.Namespace, serverURL.String(), c) + require.NoError(t, nErr) + numDroppedTimeSeries, err := prwe.pushMetrics(context.Background(), *tt.md) + assert.Equal(t, tt.numDroppedTimeSeries, numDroppedTimeSeries) + if tt.returnErr { + assert.Error(t, err) + return + } + assert.NoError(t, err) + + }) } - _, err := prwe.pushMetrics(context.Background(), pdata.Metrics{}) - assert.NoError(t, err) } diff --git a/exporter/prometheusremotewriteexporter/factory.go b/exporter/prometheusremotewriteexporter/factory.go index 007128d239d..618bf3abf07 100644 --- a/exporter/prometheusremotewriteexporter/factory.go +++ b/exporter/prometheusremotewriteexporter/factory.go @@ -15,8 +15,17 @@ package prometheusremotewriteexporter import ( + "bytes" "context" "errors" + "io/ioutil" + "log" + "net/http" + "time" + + "github.com/aws/aws-sdk-go/aws" + "github.com/aws/aws-sdk-go/aws/session" + v4 "github.com/aws/aws-sdk-go/aws/signer/v4" "go.opentelemetry.io/collector/component" "go.opentelemetry.io/collector/config/confighttp" @@ -26,9 +35,125 @@ import ( const ( // The value of "type" key in configuration. - typeStr = "prometheusremotewrite" + typeStr = "prometheusremotewrite" + regionStr = "region" + serviceStr = "service" + origClientStr = "origClient" ) +// SigningRoundTripper is a Custom RoundTripper that performs AWS Sig V4 +type SigningRoundTripper struct { + transport http.RoundTripper + signer *v4.Signer + service string + cfg *aws.Config +} + +// RoundTrip signs each outgoing request +func (si *SigningRoundTripper) RoundTrip(req *http.Request) (*http.Response, error) { + reqBody, err := req.GetBody() + if err != nil { + return nil, err + } + + // Get the body + content, err := ioutil.ReadAll(reqBody) + if err != nil { + return nil, err + } + + body := bytes.NewReader(content) + + // Sign the request + _, err = si.signer.Sign(req, body, si.service, *si.cfg.Region, time.Now()) + if err != nil { + // might need a response here + return nil, err + } + + log.Println(req) + + // requestDump, err := httputil.DumpRequest(req, true) + // if err != nil { + // log.Println(err) + // } + // f, err := os.Create("./dat") + // defer f.Close() + // f.Write(requestDump) + // f.Sync() + + // Send the request to Cortex + response, err := si.transport.RoundTrip(req) + // log.Println(response) + bodyBytes, err := ioutil.ReadAll(response.Body) + if err != nil { + log.Fatal(err) + } + bodyString := string(bodyBytes) + log.Println("response: ", bodyString) + return response, err +} + +// NewAuth takes a map of strings as parameters and return a http.RoundTripper +func NewAuth(params map[string]interface{}) (http.RoundTripper, error) { + + reg, found := params[regionStr] + if !found { + return nil, errors.New("plugin error: region not specified") + } + region, isString := reg.(string) + if !isString { + return nil, errors.New("plugin error: region is not string") + } + serv, found := params[serviceStr] + if !found { + return nil, errors.New("plugin error: service not specified") + } + + service, isString := serv.(string) + if !isString { + return nil, errors.New("plugin error: region is not string") + } + + client, found := params[origClientStr] + if !found { + return nil, errors.New("plugin error: default client not specified") + } + origClient, isClient := client.(*http.Client) + if !isClient { + return nil, errors.New("plugin error: default client not specified") + } + + // Initialize session with default credential chain + // https://docs.aws.amazon.com/sdk-for-go/v1/developer-guide/configuring-sdk.html + sess, err := session.NewSession(&aws.Config{ + Region: aws.String(region)}, + aws.NewConfig().WithLogLevel(aws.LogDebugWithSigning), + ) + if err != nil { + log.Println("AWS session initialization failed") + } + + if _, err = sess.Config.Credentials.Get(); err != nil { + log.Println("AWS session initialized, but credentials are not loaded correctly") + } + + // Get Credentials, either from ./aws or from environmental variables + creds := sess.Config.Credentials + signer := v4.NewSigner(creds) + + signer.Debug = aws.LogDebugWithSigning + signer.Logger = aws.NewDefaultLogger() + rtp := SigningRoundTripper{ + transport: origClient.Transport, + signer: signer, + cfg: sess.Config, + service: service, + } + // return a RoundTripper + return &rtp, nil +} + func NewFactory() component.ExporterFactory { return exporterhelper.NewFactory( typeStr, @@ -43,15 +168,25 @@ func createMetricsExporter(_ context.Context, _ component.ExporterCreateParams, if !ok { return nil, errors.New("invalid configuration") } - - client, err := prwCfg.HTTPClientSettings.ToClient() - - if err != nil { - return nil, err + client, cerr := prwCfg.HTTPClientSettings.ToClient() + if cerr != nil { + return nil, cerr + } + if prwCfg.AuthCfg != nil { + authConfig := make(map[string]interface{}) + authConfig[serviceStr] = prwCfg.AuthCfg[serviceStr] + authConfig[regionStr] = prwCfg.AuthCfg[regionStr] + authConfig[origClientStr] = client + + roundTripper, err := NewAuth(authConfig) + if err != nil { + return nil, err + } + + client.Transport = roundTripper } prwe, err := newPrwExporter(prwCfg.Namespace, prwCfg.HTTPClientSettings.Endpoint, client) - if err != nil { return nil, err } @@ -69,7 +204,6 @@ func createMetricsExporter(_ context.Context, _ component.ExporterCreateParams, } func createDefaultConfig() configmodels.Exporter { - // TODO: Enable the queued settings. qs := exporterhelper.CreateDefaultQueueSettings() qs.Enabled = false diff --git a/exporter/prometheusremotewriteexporter/factory_test.go b/exporter/prometheusremotewriteexporter/factory_test.go index e223c1b555e..0ee8f37fe07 100644 --- a/exporter/prometheusremotewriteexporter/factory_test.go +++ b/exporter/prometheusremotewriteexporter/factory_test.go @@ -49,6 +49,11 @@ func Test_createMetricsExporter(t *testing.T) { Insecure: false, ServerName: "", } + authConfig := createDefaultConfig().(*Config) + authConfig.AuthCfg = map[string]string{ + "service": "execute-api", + "region": "us-east-2", + } tests := []struct { name string cfg configmodels.Exporter @@ -75,6 +80,11 @@ func Test_createMetricsExporter(t *testing.T) { component.ExporterCreateParams{}, true, }, + {"auth_config_case", + authConfig, + component.ExporterCreateParams{}, + false, + }, } // run tests for _, tt := range tests { diff --git a/exporter/prometheusremotewriteexporter/helper.go b/exporter/prometheusremotewriteexporter/helper.go index 0caff6d1d6d..b27b8fa5a3b 100644 --- a/exporter/prometheusremotewriteexporter/helper.go +++ b/exporter/prometheusremotewriteexporter/helper.go @@ -15,9 +15,11 @@ package prometheusremotewriteexporter import ( + "errors" "log" "sort" "strings" + "time" "unicode" "github.com/prometheus/prometheus/prompb" @@ -27,9 +29,16 @@ import ( ) const ( - totalStr = "total" - delimeter = "_" - keyStr = "key" + nameStr = "__name__" + sumStr = "_sum" + countStr = "_count" + bucketStr = "_bucket" + leStr = "le" + quantileStr = "quantile" + pInfStr = "+Inf" + totalStr = "total" + delimeter = "_" + keyStr = "key" ) // ByLabelName enables the usage of sort.Sort() with a slice of labels @@ -179,6 +188,28 @@ func getPromMetricName(desc *otlp.MetricDescriptor, ns string) string { return sanitize(b.String()) } +// Simple helper function that takes the map +// and creates a WriteRequest from the struct -- can move to the helper.go file +func wrapTimeSeries(tsMap map[string]*prompb.TimeSeries) (*prompb.WriteRequest, error) { + if len(tsMap) == 0 { + return nil, errors.New("invalid TsMap: cannot be empty map") + } + TsArray := []prompb.TimeSeries{} + for _, v := range tsMap { + TsArray = append(TsArray, *v) + } + wrapped := prompb.WriteRequest{ + Timeseries: TsArray, + //Other parameters of the WriteRequest are unnecessary for our Export + } + return &wrapped, nil +} + +// convertTimeStamp converts OTLP timestamp in ns to timestamp in ms +func convertTimeStamp(timestamp uint64) int64 { + return int64(timestamp / uint64(int64(time.Millisecond)/int64(time.Nanosecond))) +} + // copied from prometheus-go-metric-exporter // sanitize replaces non-alphanumeric characters with underscores in s. func sanitize(s string) string { diff --git a/exporter/prometheusremotewriteexporter/out b/exporter/prometheusremotewriteexporter/out new file mode 100644 index 00000000000..e69de29bb2d diff --git a/exporter/prometheusremotewriteexporter/testdata/config.yaml b/exporter/prometheusremotewriteexporter/testdata/config.yaml index d18d81855bf..468efd7310a 100644 --- a/exporter/prometheusremotewriteexporter/testdata/config.yaml +++ b/exporter/prometheusremotewriteexporter/testdata/config.yaml @@ -1,34 +1,34 @@ receivers: - examplereceiver: - + examplereceiver: + processors: - exampleprocessor: - -exporters: - prometheusremotewrite: - prometheusremotewrite/2: - namespace: "test-space" - sending_queue: - enabled: true - num_consumers: 2 - queue_size: 10 - retry_on_failure: - enabled: true - initial_interval: 10s - max_interval: 60s - max_elapsed_time: 10m - endpoint: "localhost:8888" - ca_file: "/var/lib/mycert.pem" - write_buffer_size: 524288 - headers: - Prometheus-Remote-Write-Version: "0.1.0" - X-Scope-OrgID: 234 + exampleprocessor: +exporters: + prometheusremotewrite: + prometheusremotewrite/2: + namespace: "test-space" + sending_queue: + enabled: true + num_consumers: 2 + queue_size: 10 + retry_on_failure: + enabled: true + initial_interval: 10s + max_interval: 60s + max_elapsed_time: 10m + endpoint: "localhost:8888" + ca_file: "/var/lib/mycert.pem" + write_buffer_size: 524288 + headers: + Prometheus-Remote-Write-Version: "0.1.0" + X-Scope-OrgID: 234 + auth: + region: "us-east-2" + service: "execute-api" service: - pipelines: - metrics: - receivers: [examplereceiver] - processors: [exampleprocessor] - exporters: [prometheusremotewrite] - - + pipelines: + metrics: + receivers: [examplereceiver] + processors: [exampleprocessor] + exporters: [prometheusremotewrite] diff --git a/exporter/prometheusremotewriteexporter/testutil_test.go b/exporter/prometheusremotewriteexporter/testutil_test.go index 51099ba474b..77742067b7f 100644 --- a/exporter/prometheusremotewriteexporter/testutil_test.go +++ b/exporter/prometheusremotewriteexporter/testutil_test.go @@ -19,6 +19,7 @@ import ( "github.com/prometheus/prometheus/prompb" + "go.opentelemetry.io/collector/internal/data" commonpb "go.opentelemetry.io/collector/internal/data/opentelemetry-proto-gen/common/v1" otlp "go.opentelemetry.io/collector/internal/data/opentelemetry-proto-gen/metrics/v1" ) @@ -34,9 +35,11 @@ var ( msTime1 = int64(time1 / uint64(int64(time.Millisecond)/int64(time.Nanosecond))) msTime2 = int64(time2 / uint64(int64(time.Millisecond)/int64(time.Nanosecond))) - typeInt64 = "INT64" - - typeHistogram = "HISTOGRAM" + typeInt64 = "INT64" + typeMonotonicInt64 = "MONOTONIC_INT64" + typeMonotonicDouble = "MONOTONIC_DOUBLE" + typeHistogram = "HISTOGRAM" + typeSummary = "SUMMARY" label11 = "test_label11" value11 = "test_value11" @@ -53,10 +56,13 @@ var ( dirty1 = "%" dirty2 = "?" - intVal1 int64 = 1 - intVal2 int64 = 2 + intVal1 int64 = 1 + intVal2 int64 = 2 + floatVal1 = 1.0 + floatVal2 = 2.0 lbs1 = getLabels(label11, value11, label12, value12) + lbs2 = getLabels(label21, value21, label22, value22) lbs1Dirty = getLabels(label11+dirty1, value11, dirty2+label12, value12) promLbs1 = getPromLabels(label11, value11, label12, value12) @@ -67,10 +73,11 @@ var ( ns1 = "test_ns" name1 = "valid_single_int_point" - monotonicInt64Comb = 0 - histogramComb = 2 - summaryComb = 3 - validCombinations = []combination{ + monotonicInt64Comb = 0 + monotonicDoubleComb = 1 + histogramComb = 2 + summaryComb = 3 + validCombinations = []combination{ {otlp.MetricDescriptor_MONOTONIC_INT64, otlp.MetricDescriptor_CUMULATIVE}, {otlp.MetricDescriptor_MONOTONIC_DOUBLE, otlp.MetricDescriptor_CUMULATIVE}, {otlp.MetricDescriptor_HISTOGRAM, otlp.MetricDescriptor_CUMULATIVE}, @@ -131,6 +138,61 @@ func getDescriptor(name string, i int, comb []combination) *otlp.MetricDescripto } } +func getIntDataPoint(labels []*commonpb.StringKeyValue, value int64, ts uint64) *otlp.Int64DataPoint { + return &otlp.Int64DataPoint{ + Labels: labels, + StartTimeUnixNano: 0, + TimeUnixNano: ts, + Value: value, + } +} + +func getDoubleDataPoint(labels []*commonpb.StringKeyValue, value float64, ts uint64) *otlp.DoubleDataPoint { + return &otlp.DoubleDataPoint{ + Labels: labels, + StartTimeUnixNano: 0, + TimeUnixNano: ts, + Value: value, + } +} + +func getHistogramDataPoint(labels []*commonpb.StringKeyValue, ts uint64, sum float64, count uint64, bounds []float64, buckets []uint64) *otlp.HistogramDataPoint { + bks := []*otlp.HistogramDataPoint_Bucket{} + for _, c := range buckets { + bks = append(bks, &otlp.HistogramDataPoint_Bucket{ + Count: c, + Exemplar: nil, + }) + } + return &otlp.HistogramDataPoint{ + Labels: labels, + StartTimeUnixNano: 0, + TimeUnixNano: ts, + Count: count, + Sum: sum, + Buckets: bks, + ExplicitBounds: bounds, + } +} + +func getSummaryDataPoint(labels []*commonpb.StringKeyValue, ts uint64, sum float64, count uint64, pcts []float64, values []float64) *otlp.SummaryDataPoint { + pcs := []*otlp.SummaryDataPoint_ValueAtPercentile{} + for i, v := range values { + pcs = append(pcs, &otlp.SummaryDataPoint_ValueAtPercentile{ + Percentile: pcts[i], + Value: v, + }) + } + return &otlp.SummaryDataPoint{ + Labels: labels, + StartTimeUnixNano: 0, + TimeUnixNano: ts, + Count: count, + Sum: sum, + PercentileValues: pcs, + } +} + // Prometheus TimeSeries func getPromLabels(lbs ...string) []prompb.Label { pbLbs := prompb.Labels{ @@ -162,3 +224,51 @@ func getTimeSeries(labels []prompb.Label, samples ...prompb.Sample) *prompb.Time Samples: samples, } } + +func setCumulative(metricsData *data.MetricData) { + for _, r := range data.MetricDataToOtlp(*metricsData) { + for _, instMetrics := range r.InstrumentationLibraryMetrics { + for _, m := range instMetrics.Metrics { + m.MetricDescriptor.Temporality = otlp.MetricDescriptor_CUMULATIVE + } + } + } +} + +func setDataPointToNil(metricsData *data.MetricData, dataField string) { + for _, r := range data.MetricDataToOtlp(*metricsData) { + for _, instMetrics := range r.InstrumentationLibraryMetrics { + for _, m := range instMetrics.Metrics { + switch dataField { + case typeMonotonicInt64: + m.Int64DataPoints = nil + case typeMonotonicDouble: + m.DoubleDataPoints = nil + case typeHistogram: + m.HistogramDataPoints = nil + case typeSummary: + m.SummaryDataPoints = nil + } + } + } + } +} + +func setType(metricsData *data.MetricData, dataField string) { + for _, r := range data.MetricDataToOtlp(*metricsData) { + for _, instMetrics := range r.InstrumentationLibraryMetrics { + for _, m := range instMetrics.Metrics { + switch dataField { + case typeMonotonicInt64: + m.GetMetricDescriptor().Type = otlp.MetricDescriptor_MONOTONIC_INT64 + case typeMonotonicDouble: + m.GetMetricDescriptor().Type = otlp.MetricDescriptor_MONOTONIC_DOUBLE + case typeHistogram: + m.GetMetricDescriptor().Type = otlp.MetricDescriptor_HISTOGRAM + case typeSummary: + m.GetMetricDescriptor().Type = otlp.MetricDescriptor_SUMMARY + } + } + } + } +} diff --git a/go.mod b/go.mod index cb94179acdd..1ab52f21893 100644 --- a/go.mod +++ b/go.mod @@ -7,6 +7,7 @@ require ( github.com/OneOfOne/xxhash v1.2.5 // indirect github.com/Shopify/sarama v1.27.0 github.com/apache/thrift v0.13.0 + github.com/aws/aws-sdk-go v1.31.9 github.com/cenkalti/backoff v2.2.1+incompatible github.com/census-instrumentation/opencensus-proto v0.3.0 github.com/client9/misspell v0.3.4 @@ -17,6 +18,7 @@ require ( github.com/gogo/protobuf v1.3.1 github.com/golang/groupcache v0.0.0-20200121045136-8c9f03a8e57e github.com/golang/protobuf v1.4.2 + github.com/golang/snappy v0.0.1 github.com/golangci/golangci-lint v1.30.0 github.com/google/addlicense v0.0.0-20200622132530-df58acafd6d5 github.com/google/go-cmp v0.5.1 @@ -29,10 +31,12 @@ require ( github.com/joshdk/go-junit v0.0.0-20200702055522-6efcf4050909 github.com/jstemmer/go-junit-report v0.9.1 github.com/mjibson/esc v0.2.0 + github.com/open-telemetry/opentelemetry-proto v0.4.0 // indirect github.com/openzipkin/zipkin-go v0.2.2 github.com/orijtech/prometheus-go-metrics-exporter v0.0.5 github.com/ory/go-acc v0.2.5 github.com/pavius/impi v0.0.3 + github.com/pkg/errors v0.9.1 github.com/prometheus/client_golang v1.7.1 github.com/prometheus/common v0.11.1 github.com/prometheus/prometheus v1.8.2-0.20200626085723-c448ada63d83 diff --git a/go.sum b/go.sum index 74a423adc48..be33f48ca80 100644 --- a/go.sum +++ b/go.sum @@ -795,6 +795,8 @@ github.com/onsi/gomega v1.9.0/go.mod h1:Ho0h+IUsWyvy1OpqCwxlQ/21gkhVunqlU8fDGcoT github.com/onsi/gomega v1.10.1 h1:o0+MgICZLuZ7xjH7Vx6zS/zcu93/BEp1VwkIW1mEXCE= github.com/onsi/gomega v1.10.1/go.mod h1:iN09h71vgCQne3DLsj+A5owkum+a2tYe+TOCB1ybHNo= github.com/op/go-logging v0.0.0-20160315200505-970db520ece7/go.mod h1:HzydrMdWErDVzsI23lYNej1Htcns9BCg93Dk0bBINWk= +github.com/open-telemetry/opentelemetry-proto v0.4.0 h1:7EGs7QkdnR039zcQv71/wPLeeUUzqpH855VEWN4IHTE= +github.com/open-telemetry/opentelemetry-proto v0.4.0/go.mod h1:PMR5GI0F7BSpio+rBGFxNm6SLzg3FypDTcFuQZnO+F8= github.com/opentracing-contrib/go-grpc v0.0.0-20191001143057-db30781987df/go.mod h1:DYR5Eij8rJl8h7gblRrOZ8g0kW1umSpKqYIBTgeDtLo= github.com/opentracing-contrib/go-observer v0.0.0-20170622124052-a52f23424492/go.mod h1:Ngi6UdF0k5OKD5t5wlmGhe/EDKPoUM3BXZSSfIuJbis= github.com/opentracing-contrib/go-stdlib v0.0.0-20190519235532-cf7a6c988dc9/go.mod h1:PLldrQSroqzH70Xl+1DQcGnefIbqsKR7UDaiux3zV+w= diff --git a/img/ClassDiagram.png b/img/ClassDiagram.png new file mode 100644 index 00000000000..406edc26b0b Binary files /dev/null and b/img/ClassDiagram.png differ diff --git a/img/Pipeline.png b/img/Pipeline.png new file mode 100644 index 00000000000..f841025142b Binary files /dev/null and b/img/Pipeline.png differ diff --git a/service/defaultcomponents/defaults.go b/service/defaultcomponents/defaults.go index 6a90913e6c5..72c49e201a3 100644 --- a/service/defaultcomponents/defaults.go +++ b/service/defaultcomponents/defaults.go @@ -18,36 +18,14 @@ package defaultcomponents import ( "go.opentelemetry.io/collector/component" "go.opentelemetry.io/collector/component/componenterror" - "go.opentelemetry.io/collector/exporter/fileexporter" - "go.opentelemetry.io/collector/exporter/jaegerexporter" - "go.opentelemetry.io/collector/exporter/kafkaexporter" "go.opentelemetry.io/collector/exporter/loggingexporter" - "go.opentelemetry.io/collector/exporter/opencensusexporter" - "go.opentelemetry.io/collector/exporter/otlpexporter" - "go.opentelemetry.io/collector/exporter/prometheusexporter" - "go.opentelemetry.io/collector/exporter/zipkinexporter" + "go.opentelemetry.io/collector/exporter/prometheusremotewriteexporter" "go.opentelemetry.io/collector/extension/fluentbitextension" "go.opentelemetry.io/collector/extension/healthcheckextension" "go.opentelemetry.io/collector/extension/pprofextension" "go.opentelemetry.io/collector/extension/zpagesextension" - "go.opentelemetry.io/collector/processor/attributesprocessor" "go.opentelemetry.io/collector/processor/batchprocessor" - "go.opentelemetry.io/collector/processor/filterprocessor" - "go.opentelemetry.io/collector/processor/groupbytraceprocessor" - "go.opentelemetry.io/collector/processor/memorylimiter" - "go.opentelemetry.io/collector/processor/queuedprocessor" - "go.opentelemetry.io/collector/processor/resourceprocessor" - "go.opentelemetry.io/collector/processor/samplingprocessor/probabilisticsamplerprocessor" - "go.opentelemetry.io/collector/processor/samplingprocessor/tailsamplingprocessor" - "go.opentelemetry.io/collector/processor/spanprocessor" - "go.opentelemetry.io/collector/receiver/fluentforwardreceiver" - "go.opentelemetry.io/collector/receiver/hostmetricsreceiver" - "go.opentelemetry.io/collector/receiver/jaegerreceiver" - "go.opentelemetry.io/collector/receiver/kafkareceiver" - "go.opentelemetry.io/collector/receiver/opencensusreceiver" "go.opentelemetry.io/collector/receiver/otlpreceiver" - "go.opentelemetry.io/collector/receiver/prometheusreceiver" - "go.opentelemetry.io/collector/receiver/zipkinreceiver" ) // Components returns the default set of components used by the @@ -69,44 +47,22 @@ func Components() ( } receivers, err := component.MakeReceiverFactoryMap( - jaegerreceiver.NewFactory(), - fluentforwardreceiver.NewFactory(), - zipkinreceiver.NewFactory(), - prometheusreceiver.NewFactory(), - opencensusreceiver.NewFactory(), otlpreceiver.NewFactory(), - hostmetricsreceiver.NewFactory(), - kafkareceiver.NewFactory(), ) if err != nil { errs = append(errs, err) } exporters, err := component.MakeExporterFactoryMap( - opencensusexporter.NewFactory(), - prometheusexporter.NewFactory(), + prometheusremotewriteexporter.NewFactory(), loggingexporter.NewFactory(), - zipkinexporter.NewFactory(), - jaegerexporter.NewFactory(), - fileexporter.NewFactory(), - otlpexporter.NewFactory(), - kafkaexporter.NewFactory(), ) if err != nil { errs = append(errs, err) } processors, err := component.MakeProcessorFactoryMap( - attributesprocessor.NewFactory(), - resourceprocessor.NewFactory(), - queuedprocessor.NewFactory(), batchprocessor.NewFactory(), - memorylimiter.NewFactory(), - tailsamplingprocessor.NewFactory(), - probabilisticsamplerprocessor.NewFactory(), - spanprocessor.NewFactory(), - filterprocessor.NewFactory(), - groupbytraceprocessor.NewFactory(), ) if err != nil { errs = append(errs, err) diff --git a/service/defaultcomponents/defaults_test.go b/service/defaultcomponents/defaults_test.go index 65af9b0e6f7..ab4b0e96d48 100644 --- a/service/defaultcomponents/defaults_test.go +++ b/service/defaultcomponents/defaults_test.go @@ -57,6 +57,7 @@ func TestDefaultComponents(t *testing.T) { expectedExporters := []configmodels.Type{ "opencensus", "prometheus", + "prometheusremotewrite", "logging", "zipkin", "jaeger", diff --git a/test/README.md b/test/README.md new file mode 100644 index 00000000000..33998d505cc --- /dev/null +++ b/test/README.md @@ -0,0 +1,23 @@ +# Testing Pipeline for Prometheus Remote Write Exporter +The this package contains utilities for testing the Prometheus remote write exporter. + +- `otlploadgenerator` generates and +sends metric to OTLP receiver of the Collector. +- `querier` validates the correctness of the metric by querying a backend. +- `otel-collector-config.yaml` specifies the configuration of the OpenTelemetry Collector. + +To start a Collector instance and send to it using `otlploadgenerator`, run the following command: + +``` +make testaps +``` +Note: With this command, the collector process has to be terminated manually after each run +## `otlploadgenerator` +The load generator first creates a `data.txt` file. This file is need so that the querier knows what the input data is. +Each line in the file represents and OTLP metric. Then, it parse each line from the file and build OTLP metric. +It then creates a gRPC connection to the Collector, and sends the metric it builds. + +See more detail [here](./otlploadgenerator/README.md) + +## `querier` +To be added. diff --git a/test/otel-collector-config.yaml b/test/otel-collector-config.yaml new file mode 100644 index 00000000000..b849d1ada43 --- /dev/null +++ b/test/otel-collector-config.yaml @@ -0,0 +1,29 @@ +receivers: + otlp: + protocols: + grpc: +exporters: + prometheusremotewrite: + endpoint: "http://aps-workspaces-beta.us-west-2.amazonaws.com/workspaces/yang-yu-intern-test-ws/remote_write" + namespace: otel-collector + auth: + region: "us-west-2" + service: "aps" + timeout: 10s + logging: + loglevel: debug + + +extensions: + health_check: + pprof: + endpoint: :1888 + zpages: + endpoint: :55679 + +service: + extensions: [pprof, zpages, health_check] + pipelines: + metrics: + receivers: [otlp] + exporters: [logging,prometheusremotewrite] \ No newline at end of file diff --git a/test/otlploadgenerator/README.md b/test/otlploadgenerator/README.md new file mode 100644 index 00000000000..6e07fb6ee20 --- /dev/null +++ b/test/otlploadgenerator/README.md @@ -0,0 +1,12 @@ +# OTLP Load Generator +`data.go`: writes metrics in the following format to a text file: +``` + name, type, label1 labelvalue1 , value1 value2 value3 value4 value5 +``` +gauge and counter has only one value. Output file path, type, number of metrics, labels, and value bounds of generated metrics +are all defined in `otlp.go`. + +`otlp.go`: build and send metrics to the collector. After the metric text is generated, it +waits for 10 seconds and start building OTLP metrics and sending. + +`util.go`: utilities for building OTLP metrics. diff --git a/test/otlploadgenerator/data.go b/test/otlploadgenerator/data.go new file mode 100644 index 00000000000..a9c543a8a2e --- /dev/null +++ b/test/otlploadgenerator/data.go @@ -0,0 +1,100 @@ +package main + +import ( + "fmt" + "log" + "math/rand" + "os" + "strconv" + "strings" +) + +/* + path = "./data.txt" // output file path + item = 1000 // total number of metrics / lines in output file + metric = "metricName" // base metricName. output file has only unique metricName with a number suffix + types = []string{ + "counter", + "gauge", + "histogram", + "summary", + } + labels = []string{ // each metric will have from 1 to 4 sets of labels + "label1 value1", + "label2 value2", + "label3 value3", + "label4 value4", + } + delimeter = "," // separate name, type, labels and metric value + space = " " // separate a set of label values or metric values + valueBound = 5000 // metric values are [0, valueBound) + bounds = []float32{0.01, 0.5, 0.99} // fixed quantile/buckets +*/ + +// generateData writes metrics in the following format to a text file: +// name, type, label1 labelvalue1 , value1 value2 value3 value4 value5 +// gauge and counter has only one value +func generateData() { + f, err := os.Create(path) + if err != nil { + log.Println(err) + return + } + defer f.Close() + + for i := 0; i < item; i++ { + + mName := metric + strconv.Itoa(i) + mType := types[rand.Intn(len(types))] + labelSize := rand.Intn(len(labels)) + 1 + b := &strings.Builder{} + writeNameTypeLabel(mName, mType, labelSize, b) + + // gauge or counter + if mType == types[0] || mType == types[1] { + b.WriteString(strconv.Itoa(rand.Intn(valueBound))) + // histogram + } else if mType == types[2] { + + count := 0 + buckets := make([]int, 3, 3) + for i := range bounds { + n := rand.Intn(valueBound) + buckets[i] = n + count += n + } + b.WriteString(strconv.Itoa(rand.Intn(valueBound))) // sum + b.WriteString(space) + b.WriteString(strconv.Itoa(count)) // count + b.WriteString(space) + for _, val := range buckets { + b.WriteString(strconv.Itoa(val)) // individual bucket + b.WriteString(space) + } + // summary + } else { + b.WriteString(strconv.Itoa(rand.Intn(valueBound))) // sum + b.WriteString(space) + b.WriteString(strconv.Itoa(rand.Intn(valueBound))) // count + b.WriteString(space) + for range bounds { + b.WriteString(fmt.Sprintf("%f", rand.Float32())) // individual quantile + b.WriteString(space) + } + } + b.WriteString("\n") + f.WriteString(b.String()) + } +} + +func writeNameTypeLabel(mName, mType string, labelSize int, b *strings.Builder) { + b.WriteString(mName) + b.WriteString(delimeter) + b.WriteString(mType) + b.WriteString(delimeter) + for i := 0; i < labelSize; i++ { + b.WriteString(labels[i]) + b.WriteString(space) + } + b.WriteString(delimeter) +} diff --git a/test/otlploadgenerator/data.txt b/test/otlploadgenerator/data.txt new file mode 100644 index 00000000000..8a216c7a46a --- /dev/null +++ b/test/otlploadgenerator/data.txt @@ -0,0 +1,1000 @@ +metricName0,gauge,label1 value1 label2 value2 label3 value3 label4 value4 ,1847 +metricName1,summary,label1 value1 label2 value2 ,1318 4425 0.156519 0.096970 0.300912 +metricName2,histogram,label1 value1 label2 value2 label3 value3 label4 value4 ,3274 7979 3162 89 4728 +metricName3,summary,label1 value1 label2 value2 ,3237 4106 0.203187 0.360871 0.570673 +metricName4,histogram,label1 value1 label2 value2 label3 value3 label4 value4 ,2790 11122 4947 3287 2888 +metricName5,summary,label1 value1 label2 value2 ,408 2387 0.607253 0.975242 0.079454 +metricName6,gauge,label1 value1 label2 value2 label3 value3 label4 value4 ,1485 +metricName7,histogram,label1 value1 label2 value2 ,2433 3847 3090 194 563 +metricName8,summary,label1 value1 label2 value2 label3 value3 ,4324 1159 0.361805 0.880543 0.297112 +metricName9,gauge,label1 value1 label2 value2 label3 value3 label4 value4 ,3000 +metricName10,gauge,label1 value1 ,4538 +metricName11,summary,label1 value1 label2 value2 label3 value3 label4 value4 ,2451 3510 0.801055 0.730231 0.182925 +metricName12,counter,label1 value1 label2 value2 ,2202 +metricName13,summary,label1 value1 label2 value2 label3 value3 ,1563 4376 0.926987 0.954945 0.347954 +metricName14,histogram,label1 value1 label2 value2 ,3623 6879 2463 2996 1420 +metricName15,gauge,label1 value1 label2 value2 ,3133 +metricName16,gauge,label1 value1 label2 value2 label3 value3 label4 value4 ,3033 +metricName17,summary,label1 value1 label2 value2 label3 value3 label4 value4 ,2002 3878 0.369693 0.236823 0.535282 +metricName18,counter,label1 value1 label2 value2 label3 value3 label4 value4 ,552 +metricName19,summary,label1 value1 label2 value2 ,1598 2425 0.625095 0.550147 0.623609 +metricName20,summary,label1 value1 label2 value2 label3 value3 ,3410 285 0.399984 0.497868 0.603978 +metricName21,gauge,label1 value1 label2 value2 label3 value3 label4 value4 ,3582 +metricName22,counter,label1 value1 label2 value2 ,4267 +metricName23,gauge,label1 value1 label2 value2 label3 value3 label4 value4 ,894 +metricName24,histogram,label1 value1 label2 value2 label3 value3 ,1270 8126 3981 2079 2066 +metricName25,gauge,label1 value1 label2 value2 label3 value3 ,4819 +metricName26,gauge,label1 value1 ,2175 +metricName27,gauge,label1 value1 label2 value2 label3 value3 ,1387 +metricName28,gauge,label1 value1 ,2818 +metricName29,counter,label1 value1 label2 value2 label3 value3 label4 value4 ,1224 +metricName30,summary,label1 value1 ,1532 3616 0.392216 0.589383 0.929612 +metricName31,summary,label1 value1 ,3640 2351 0.491607 0.957954 0.797209 +metricName32,summary,label1 value1 label2 value2 ,90 1602 0.190033 0.739826 0.654041 +metricName33,histogram,label1 value1 label2 value2 label3 value3 ,4208 6387 2822 1223 2342 +metricName34,summary,label1 value1 ,1166 3710 0.570852 0.512782 0.684175 +metricName35,histogram,label1 value1 label2 value2 ,3430 11825 4415 4371 3039 +metricName36,gauge,label1 value1 ,1359 +metricName37,counter,label1 value1 label2 value2 label3 value3 label4 value4 ,870 +metricName38,counter,label1 value1 label2 value2 label3 value3 label4 value4 ,3010 +metricName39,gauge,label1 value1 label2 value2 label3 value3 ,1829 +metricName40,counter,label1 value1 ,1756 +metricName41,summary,label1 value1 label2 value2 label3 value3 ,1200 4456 0.780754 0.092118 0.053495 +metricName42,gauge,label1 value1 label2 value2 label3 value3 ,320 +metricName43,summary,label1 value1 label2 value2 label3 value3 ,3447 292 0.092970 0.645833 0.311886 +metricName44,counter,label1 value1 label2 value2 label3 value3 ,3756 +metricName45,summary,label1 value1 label2 value2 label3 value3 label4 value4 ,1157 3652 0.319331 0.499386 0.400432 +metricName46,summary,label1 value1 label2 value2 ,1393 3470 0.887447 0.236327 0.765008 +metricName47,counter,label1 value1 ,3922 +metricName48,gauge,label1 value1 label2 value2 ,60 +metricName49,counter,label1 value1 label2 value2 label3 value3 label4 value4 ,2954 +metricName50,counter,label1 value1 ,4551 +metricName51,gauge,label1 value1 label2 value2 ,4516 +metricName52,counter,label1 value1 label2 value2 label3 value3 label4 value4 ,4637 +metricName53,gauge,label1 value1 label2 value2 ,2804 +metricName54,gauge,label1 value1 label2 value2 ,1215 +metricName55,summary,label1 value1 label2 value2 label3 value3 ,1040 3662 0.310510 0.184391 0.967094 +metricName56,gauge,label1 value1 label2 value2 label3 value3 label4 value4 ,1443 +metricName57,gauge,label1 value1 label2 value2 label3 value3 ,574 +metricName58,gauge,label1 value1 label2 value2 label3 value3 ,1336 +metricName59,histogram,label1 value1 ,1237 6113 1544 2395 2174 +metricName60,counter,label1 value1 label2 value2 ,1606 +metricName61,counter,label1 value1 ,2420 +metricName62,histogram,label1 value1 label2 value2 label3 value3 label4 value4 ,3682 4533 1117 3151 265 +metricName63,summary,label1 value1 ,129 4231 0.791125 0.262382 0.346864 +metricName64,summary,label1 value1 label2 value2 ,166 4859 0.578351 0.413581 0.119851 +metricName65,counter,label1 value1 label2 value2 ,1774 +metricName66,counter,label1 value1 label2 value2 label3 value3 label4 value4 ,1874 +metricName67,histogram,label1 value1 label2 value2 ,4658 7867 2286 4467 1114 +metricName68,summary,label1 value1 label2 value2 label3 value3 ,4723 1724 0.953259 0.809874 0.181591 +metricName69,summary,label1 value1 label2 value2 label3 value3 label4 value4 ,3146 4983 0.710744 0.273495 0.407633 +metricName70,gauge,label1 value1 ,36 +metricName71,summary,label1 value1 label2 value2 ,2762 1789 0.315362 0.951906 0.751563 +metricName72,gauge,label1 value1 ,4159 +metricName73,gauge,label1 value1 label2 value2 label3 value3 ,2418 +metricName74,gauge,label1 value1 label2 value2 label3 value3 label4 value4 ,2653 +metricName75,counter,label1 value1 ,4081 +metricName76,gauge,label1 value1 ,1509 +metricName77,histogram,label1 value1 ,3477 8109 2695 580 4834 +metricName78,summary,label1 value1 label2 value2 label3 value3 ,2175 4993 0.926411 0.170946 0.303887 +metricName79,gauge,label1 value1 label2 value2 label3 value3 ,2884 +metricName80,histogram,label1 value1 label2 value2 label3 value3 label4 value4 ,4253 9807 3162 4673 1972 +metricName81,histogram,label1 value1 label2 value2 label3 value3 label4 value4 ,4731 1057 496 48 513 +metricName82,histogram,label1 value1 label2 value2 label3 value3 ,2677 9603 3740 3531 2332 +metricName83,histogram,label1 value1 label2 value2 label3 value3 ,4187 10499 3483 4330 2686 +metricName84,histogram,label1 value1 ,3956 10012 3421 3193 3398 +metricName85,gauge,label1 value1 label2 value2 label3 value3 ,45 +metricName86,histogram,label1 value1 label2 value2 label3 value3 ,2044 9443 3999 4024 1420 +metricName87,summary,label1 value1 label2 value2 label3 value3 label4 value4 ,2124 3357 0.765589 0.248182 0.455444 +metricName88,counter,label1 value1 label2 value2 ,814 +metricName89,gauge,label1 value1 label2 value2 label3 value3 label4 value4 ,1581 +metricName90,summary,label1 value1 label2 value2 label3 value3 label4 value4 ,1985 629 0.245792 0.967505 0.536981 +metricName91,counter,label1 value1 label2 value2 label3 value3 label4 value4 ,4377 +metricName92,histogram,label1 value1 label2 value2 ,3780 10583 3017 4759 2807 +metricName93,gauge,label1 value1 label2 value2 label3 value3 ,2474 +metricName94,counter,label1 value1 label2 value2 label3 value3 label4 value4 ,894 +metricName95,histogram,label1 value1 label2 value2 ,395 6214 2574 3610 30 +metricName96,histogram,label1 value1 label2 value2 label3 value3 label4 value4 ,645 7836 2650 909 4277 +metricName97,summary,label1 value1 ,3198 2734 0.845035 0.293284 0.778304 +metricName98,summary,label1 value1 label2 value2 label3 value3 ,10 3921 0.001412 0.565867 0.887792 +metricName99,counter,label1 value1 ,3374 +metricName100,gauge,label1 value1 ,3973 +metricName101,counter,label1 value1 label2 value2 label3 value3 ,75 +metricName102,histogram,label1 value1 ,325 8086 2913 214 4959 +metricName103,histogram,label1 value1 label2 value2 ,1487 4743 1244 2063 1436 +metricName104,counter,label1 value1 label2 value2 label3 value3 label4 value4 ,1925 +metricName105,histogram,label1 value1 label2 value2 label3 value3 label4 value4 ,3176 11044 4200 3114 3730 +metricName106,counter,label1 value1 label2 value2 label3 value3 label4 value4 ,4434 +metricName107,summary,label1 value1 label2 value2 label3 value3 ,913 2045 0.452204 0.226510 0.389056 +metricName108,histogram,label1 value1 label2 value2 ,4485 7025 1574 701 4750 +metricName109,counter,label1 value1 ,4560 +metricName110,counter,label1 value1 label2 value2 label3 value3 label4 value4 ,1582 +metricName111,counter,label1 value1 label2 value2 ,2516 +metricName112,histogram,label1 value1 label2 value2 ,1217 12795 4555 4277 3963 +metricName113,histogram,label1 value1 ,3740 9387 2179 3875 3333 +metricName114,summary,label1 value1 label2 value2 label3 value3 ,1552 3928 0.334818 0.523107 0.348580 +metricName115,counter,label1 value1 label2 value2 label3 value3 ,1009 +metricName116,counter,label1 value1 ,1314 +metricName117,gauge,label1 value1 label2 value2 label3 value3 label4 value4 ,2442 +metricName118,counter,label1 value1 label2 value2 label3 value3 label4 value4 ,1730 +metricName119,summary,label1 value1 label2 value2 ,3360 894 0.110490 0.346799 0.380984 +metricName120,gauge,label1 value1 ,1757 +metricName121,counter,label1 value1 label2 value2 label3 value3 ,4283 +metricName122,gauge,label1 value1 label2 value2 label3 value3 ,1315 +metricName123,counter,label1 value1 ,342 +metricName124,summary,label1 value1 label2 value2 label3 value3 ,3401 707 0.612437 0.022463 0.096493 +metricName125,counter,label1 value1 label2 value2 label3 value3 label4 value4 ,3755 +metricName126,gauge,label1 value1 ,2694 +metricName127,histogram,label1 value1 label2 value2 label3 value3 ,2370 9713 2417 3882 3414 +metricName128,histogram,label1 value1 ,3825 10198 4476 1526 4196 +metricName129,counter,label1 value1 label2 value2 label3 value3 ,2243 +metricName130,summary,label1 value1 label2 value2 ,2713 3709 0.271577 0.649651 0.255871 +metricName131,histogram,label1 value1 label2 value2 ,4401 11873 4490 3798 3585 +metricName132,histogram,label1 value1 label2 value2 label3 value3 ,4681 3942 392 2735 815 +metricName133,counter,label1 value1 ,617 +metricName134,histogram,label1 value1 label2 value2 label3 value3 label4 value4 ,3460 4785 573 1051 3161 +metricName135,counter,label1 value1 ,4214 +metricName136,histogram,label1 value1 label2 value2 label3 value3 label4 value4 ,3040 11233 4135 2748 4350 +metricName137,counter,label1 value1 label2 value2 label3 value3 ,4666 +metricName138,summary,label1 value1 ,3794 2510 0.052763 0.178146 0.382093 +metricName139,histogram,label1 value1 ,1898 5009 3834 1013 162 +metricName140,gauge,label1 value1 label2 value2 ,1840 +metricName141,gauge,label1 value1 label2 value2 label3 value3 ,2601 +metricName142,histogram,label1 value1 ,817 7390 3571 3577 242 +metricName143,summary,label1 value1 ,2150 4907 0.655417 0.414351 0.259323 +metricName144,counter,label1 value1 label2 value2 label3 value3 ,1904 +metricName145,histogram,label1 value1 ,453 8096 1775 3114 3207 +metricName146,gauge,label1 value1 label2 value2 ,3201 +metricName147,summary,label1 value1 label2 value2 label3 value3 ,3045 4227 0.498237 0.162724 0.944086 +metricName148,summary,label1 value1 label2 value2 label3 value3 label4 value4 ,943 340 0.254205 0.615485 0.204328 +metricName149,summary,label1 value1 ,1778 1281 0.860608 0.783551 0.833797 +metricName150,gauge,label1 value1 label2 value2 label3 value3 label4 value4 ,1648 +metricName151,histogram,label1 value1 label2 value2 ,836 7151 1836 1955 3360 +metricName152,histogram,label1 value1 label2 value2 label3 value3 label4 value4 ,779 6941 1128 2201 3612 +metricName153,summary,label1 value1 label2 value2 label3 value3 label4 value4 ,3787 1532 0.513965 0.185761 0.012481 +metricName154,histogram,label1 value1 label2 value2 ,2808 10149 4801 1501 3847 +metricName155,summary,label1 value1 label2 value2 label3 value3 label4 value4 ,2414 1096 0.540622 0.541541 0.638555 +metricName156,gauge,label1 value1 ,1192 +metricName157,histogram,label1 value1 label2 value2 label3 value3 label4 value4 ,1608 3419 197 144 3078 +metricName158,summary,label1 value1 label2 value2 label3 value3 label4 value4 ,3454 2352 0.656274 0.842902 0.099331 +metricName159,counter,label1 value1 ,3780 +metricName160,gauge,label1 value1 label2 value2 label3 value3 label4 value4 ,2641 +metricName161,histogram,label1 value1 label2 value2 label3 value3 label4 value4 ,2044 10758 2636 4338 3784 +metricName162,gauge,label1 value1 label2 value2 label3 value3 ,2523 +metricName163,histogram,label1 value1 label2 value2 label3 value3 label4 value4 ,2107 6076 1362 2635 2079 +metricName164,counter,label1 value1 label2 value2 label3 value3 ,3495 +metricName165,counter,label1 value1 label2 value2 label3 value3 ,989 +metricName166,counter,label1 value1 label2 value2 ,2915 +metricName167,histogram,label1 value1 ,3804 5712 920 4289 503 +metricName168,counter,label1 value1 ,1879 +metricName169,summary,label1 value1 label2 value2 label3 value3 label4 value4 ,1385 2198 0.826261 0.629588 0.161215 +metricName170,summary,label1 value1 ,3332 4962 0.467596 0.741298 0.502597 +metricName171,histogram,label1 value1 label2 value2 ,2356 8013 3788 809 3416 +metricName172,summary,label1 value1 ,4208 4244 0.750387 0.476966 0.860784 +metricName173,gauge,label1 value1 label2 value2 ,344 +metricName174,gauge,label1 value1 ,1806 +metricName175,summary,label1 value1 label2 value2 label3 value3 label4 value4 ,2378 4191 0.268431 0.041321 0.648045 +metricName176,histogram,label1 value1 ,1411 4231 1536 1312 1383 +metricName177,summary,label1 value1 label2 value2 label3 value3 label4 value4 ,3799 3158 0.222980 0.644637 0.517682 +metricName178,counter,label1 value1 label2 value2 ,296 +metricName179,counter,label1 value1 label2 value2 ,3816 +metricName180,gauge,label1 value1 label2 value2 label3 value3 ,2777 +metricName181,summary,label1 value1 label2 value2 label3 value3 ,4661 3784 0.750951 0.725276 0.328914 +metricName182,summary,label1 value1 ,2650 1762 0.603617 0.962712 0.123267 +metricName183,gauge,label1 value1 ,1673 +metricName184,gauge,label1 value1 label2 value2 label3 value3 label4 value4 ,2181 +metricName185,histogram,label1 value1 label2 value2 ,3135 9506 2464 3676 3366 +metricName186,gauge,label1 value1 label2 value2 ,4105 +metricName187,summary,label1 value1 label2 value2 ,763 204 0.038934 0.130853 0.708602 +metricName188,counter,label1 value1 label2 value2 label3 value3 ,203 +metricName189,histogram,label1 value1 label2 value2 label3 value3 label4 value4 ,3498 8383 1907 2672 3804 +metricName190,summary,label1 value1 label2 value2 ,2337 3472 0.974318 0.534744 0.748552 +metricName191,histogram,label1 value1 label2 value2 ,3650 9268 4118 2892 2258 +metricName192,counter,label1 value1 label2 value2 label3 value3 ,817 +metricName193,gauge,label1 value1 label2 value2 ,4269 +metricName194,summary,label1 value1 label2 value2 label3 value3 ,4952 3171 0.506672 0.444025 0.244141 +metricName195,summary,label1 value1 ,2146 3118 0.982116 0.244177 0.999542 +metricName196,histogram,label1 value1 label2 value2 ,1848 4868 1274 3521 73 +metricName197,histogram,label1 value1 ,4491 7077 354 3963 2760 +metricName198,summary,label1 value1 ,3097 999 0.122316 0.481311 0.100887 +metricName199,summary,label1 value1 label2 value2 label3 value3 ,1830 2057 0.620687 0.519344 0.309882 +metricName200,summary,label1 value1 ,3228 3882 0.640563 0.501779 0.602722 +metricName201,gauge,label1 value1 ,3225 +metricName202,counter,label1 value1 label2 value2 label3 value3 label4 value4 ,1015 +metricName203,counter,label1 value1 label2 value2 ,2694 +metricName204,gauge,label1 value1 label2 value2 ,4764 +metricName205,histogram,label1 value1 label2 value2 label3 value3 ,4444 7648 590 3237 3821 +metricName206,summary,label1 value1 label2 value2 ,1224 1011 0.892230 0.119343 0.169927 +metricName207,histogram,label1 value1 label2 value2 label3 value3 ,1185 7102 4470 570 2062 +metricName208,gauge,label1 value1 label2 value2 label3 value3 label4 value4 ,4822 +metricName209,summary,label1 value1 label2 value2 ,1964 82 0.984058 0.516642 0.114904 +metricName210,summary,label1 value1 label2 value2 ,2785 4984 0.137332 0.268594 0.943485 +metricName211,counter,label1 value1 ,2972 +metricName212,counter,label1 value1 label2 value2 label3 value3 ,4698 +metricName213,gauge,label1 value1 label2 value2 ,3145 +metricName214,histogram,label1 value1 label2 value2 label3 value3 ,4291 10834 1805 4775 4254 +metricName215,summary,label1 value1 label2 value2 label3 value3 ,395 2916 0.598291 0.136314 0.592553 +metricName216,summary,label1 value1 label2 value2 label3 value3 label4 value4 ,1203 2017 0.919319 0.406887 0.002251 +metricName217,counter,label1 value1 label2 value2 ,4882 +metricName218,gauge,label1 value1 ,4003 +metricName219,gauge,label1 value1 label2 value2 label3 value3 ,2603 +metricName220,counter,label1 value1 label2 value2 ,2722 +metricName221,histogram,label1 value1 ,2487 10668 3599 2588 4481 +metricName222,histogram,label1 value1 ,4565 9607 4006 1134 4467 +metricName223,gauge,label1 value1 label2 value2 label3 value3 ,3466 +metricName224,counter,label1 value1 label2 value2 label3 value3 label4 value4 ,942 +metricName225,summary,label1 value1 label2 value2 label3 value3 label4 value4 ,4086 4455 0.533531 0.822773 0.838115 +metricName226,gauge,label1 value1 ,660 +metricName227,summary,label1 value1 label2 value2 label3 value3 label4 value4 ,2316 4912 0.701503 0.890558 0.561613 +metricName228,gauge,label1 value1 label2 value2 label3 value3 ,2083 +metricName229,histogram,label1 value1 label2 value2 ,2359 6424 2269 784 3371 +metricName230,gauge,label1 value1 label2 value2 label3 value3 ,555 +metricName231,summary,label1 value1 label2 value2 ,4574 1283 0.221290 0.195333 0.683089 +metricName232,gauge,label1 value1 label2 value2 ,2 +metricName233,gauge,label1 value1 ,374 +metricName234,counter,label1 value1 label2 value2 label3 value3 label4 value4 ,2287 +metricName235,summary,label1 value1 ,3341 2865 0.828106 0.381027 0.775098 +metricName236,histogram,label1 value1 label2 value2 label3 value3 ,3939 4530 2452 1856 222 +metricName237,summary,label1 value1 ,4187 343 0.592903 0.390352 0.039729 +metricName238,histogram,label1 value1 label2 value2 label3 value3 label4 value4 ,3501 3462 134 1062 2266 +metricName239,gauge,label1 value1 label2 value2 label3 value3 ,3115 +metricName240,counter,label1 value1 ,3722 +metricName241,counter,label1 value1 label2 value2 label3 value3 label4 value4 ,1956 +metricName242,summary,label1 value1 label2 value2 label3 value3 label4 value4 ,3702 4444 0.327027 0.185250 0.663989 +metricName243,counter,label1 value1 label2 value2 label3 value3 ,932 +metricName244,counter,label1 value1 label2 value2 ,2964 +metricName245,counter,label1 value1 ,1831 +metricName246,gauge,label1 value1 label2 value2 label3 value3 label4 value4 ,3526 +metricName247,gauge,label1 value1 label2 value2 label3 value3 ,966 +metricName248,histogram,label1 value1 label2 value2 label3 value3 ,521 9723 4087 2879 2757 +metricName249,gauge,label1 value1 label2 value2 label3 value3 ,4409 +metricName250,histogram,label1 value1 label2 value2 ,3019 3493 1188 1747 558 +metricName251,counter,label1 value1 ,905 +metricName252,counter,label1 value1 label2 value2 label3 value3 label4 value4 ,541 +metricName253,summary,label1 value1 label2 value2 label3 value3 ,2453 2866 0.425865 0.497961 0.816406 +metricName254,counter,label1 value1 label2 value2 ,4586 +metricName255,summary,label1 value1 label2 value2 label3 value3 ,4984 615 0.192973 0.822442 0.637581 +metricName256,histogram,label1 value1 label2 value2 ,918 7055 4114 2697 244 +metricName257,summary,label1 value1 label2 value2 ,3734 2935 0.604483 0.909740 0.461785 +metricName258,counter,label1 value1 ,3156 +metricName259,histogram,label1 value1 label2 value2 label3 value3 ,4753 4193 84 692 3417 +metricName260,gauge,label1 value1 label2 value2 label3 value3 label4 value4 ,3181 +metricName261,gauge,label1 value1 label2 value2 ,3050 +metricName262,gauge,label1 value1 label2 value2 ,1614 +metricName263,histogram,label1 value1 ,3860 6882 2242 1488 3152 +metricName264,summary,label1 value1 ,917 3002 0.873447 0.753545 0.657448 +metricName265,gauge,label1 value1 label2 value2 label3 value3 ,1317 +metricName266,counter,label1 value1 label2 value2 label3 value3 label4 value4 ,3860 +metricName267,counter,label1 value1 ,3814 +metricName268,gauge,label1 value1 ,2305 +metricName269,histogram,label1 value1 label2 value2 ,4032 10679 4247 1973 4459 +metricName270,histogram,label1 value1 label2 value2 ,3362 5315 1053 3784 478 +metricName271,gauge,label1 value1 ,3099 +metricName272,counter,label1 value1 ,3370 +metricName273,gauge,label1 value1 label2 value2 ,3519 +metricName274,histogram,label1 value1 ,2896 8864 3925 2192 2747 +metricName275,gauge,label1 value1 label2 value2 ,2749 +metricName276,counter,label1 value1 label2 value2 label3 value3 ,4183 +metricName277,gauge,label1 value1 label2 value2 ,1708 +metricName278,summary,label1 value1 label2 value2 ,2248 3142 0.658926 0.460163 0.598313 +metricName279,gauge,label1 value1 label2 value2 label3 value3 label4 value4 ,375 +metricName280,gauge,label1 value1 label2 value2 label3 value3 label4 value4 ,4150 +metricName281,summary,label1 value1 ,3976 131 0.542686 0.615077 0.155477 +metricName282,counter,label1 value1 ,2862 +metricName283,summary,label1 value1 ,3322 414 0.853716 0.374761 0.788190 +metricName284,histogram,label1 value1 label2 value2 label3 value3 ,591 7745 294 3226 4225 +metricName285,histogram,label1 value1 label2 value2 label3 value3 label4 value4 ,4324 7379 4381 2467 531 +metricName286,counter,label1 value1 ,3202 +metricName287,histogram,label1 value1 ,1724 7626 2361 2474 2791 +metricName288,gauge,label1 value1 ,4327 +metricName289,histogram,label1 value1 label2 value2 ,3876 6512 2754 1929 1829 +metricName290,histogram,label1 value1 ,2710 7381 3163 797 3421 +metricName291,summary,label1 value1 label2 value2 label3 value3 ,4631 2906 0.851493 0.756972 0.921439 +metricName292,histogram,label1 value1 label2 value2 ,4460 6111 788 689 4634 +metricName293,gauge,label1 value1 label2 value2 ,3423 +metricName294,counter,label1 value1 ,249 +metricName295,histogram,label1 value1 label2 value2 ,131 4365 1597 614 2154 +metricName296,gauge,label1 value1 label2 value2 label3 value3 ,2543 +metricName297,histogram,label1 value1 ,2814 9120 3671 2959 2490 +metricName298,histogram,label1 value1 label2 value2 ,2298 5154 2594 95 2465 +metricName299,histogram,label1 value1 label2 value2 ,2290 8319 4950 501 2868 +metricName300,histogram,label1 value1 label2 value2 label3 value3 label4 value4 ,2930 9911 1824 4467 3620 +metricName301,counter,label1 value1 label2 value2 ,654 +metricName302,histogram,label1 value1 label2 value2 ,4113 6435 3975 1141 1319 +metricName303,histogram,label1 value1 label2 value2 label3 value3 label4 value4 ,4963 10336 3877 3311 3148 +metricName304,counter,label1 value1 ,2719 +metricName305,summary,label1 value1 label2 value2 label3 value3 ,4620 4909 0.742528 0.851067 0.285695 +metricName306,gauge,label1 value1 label2 value2 ,444 +metricName307,gauge,label1 value1 ,4338 +metricName308,summary,label1 value1 label2 value2 label3 value3 label4 value4 ,2965 1152 0.311973 0.126870 0.179834 +metricName309,counter,label1 value1 label2 value2 label3 value3 label4 value4 ,330 +metricName310,gauge,label1 value1 label2 value2 ,715 +metricName311,counter,label1 value1 label2 value2 ,638 +metricName312,summary,label1 value1 label2 value2 label3 value3 label4 value4 ,980 1280 0.460673 0.939673 0.793478 +metricName313,gauge,label1 value1 ,897 +metricName314,histogram,label1 value1 label2 value2 label3 value3 ,262 12418 4254 4914 3250 +metricName315,counter,label1 value1 ,4519 +metricName316,summary,label1 value1 label2 value2 label3 value3 ,3749 2096 0.094059 0.462083 0.885380 +metricName317,counter,label1 value1 label2 value2 ,3679 +metricName318,histogram,label1 value1 ,4109 11593 4838 2490 4265 +metricName319,gauge,label1 value1 ,2797 +metricName320,summary,label1 value1 ,3006 4669 0.338491 0.229749 0.401513 +metricName321,summary,label1 value1 label2 value2 ,4926 2486 0.790594 0.324426 0.431072 +metricName322,histogram,label1 value1 ,3981 1297 973 187 137 +metricName323,summary,label1 value1 label2 value2 ,581 1592 0.948903 0.136564 0.293160 +metricName324,summary,label1 value1 label2 value2 label3 value3 label4 value4 ,4862 4832 0.645498 0.552293 0.095756 +metricName325,gauge,label1 value1 label2 value2 label3 value3 ,673 +metricName326,histogram,label1 value1 label2 value2 ,165 8239 3389 1617 3233 +metricName327,counter,label1 value1 label2 value2 ,2695 +metricName328,summary,label1 value1 label2 value2 label3 value3 label4 value4 ,1570 4707 0.979575 0.730822 0.136832 +metricName329,summary,label1 value1 ,3340 3170 0.184943 0.054597 0.616148 +metricName330,gauge,label1 value1 ,4227 +metricName331,summary,label1 value1 label2 value2 label3 value3 ,2060 2883 0.854999 0.090411 0.236751 +metricName332,summary,label1 value1 label2 value2 label3 value3 ,82 836 0.827817 0.109355 0.181332 +metricName333,counter,label1 value1 label2 value2 ,2317 +metricName334,histogram,label1 value1 ,200 10549 3594 4130 2825 +metricName335,histogram,label1 value1 label2 value2 ,4634 7624 1133 4565 1926 +metricName336,counter,label1 value1 label2 value2 ,2131 +metricName337,summary,label1 value1 ,2986 3939 0.922463 0.419501 0.135860 +metricName338,counter,label1 value1 label2 value2 label3 value3 ,1731 +metricName339,gauge,label1 value1 label2 value2 label3 value3 ,2500 +metricName340,histogram,label1 value1 ,4073 4685 2880 1484 321 +metricName341,histogram,label1 value1 label2 value2 label3 value3 label4 value4 ,4684 10932 3524 3884 3524 +metricName342,gauge,label1 value1 label2 value2 label3 value3 label4 value4 ,2623 +metricName343,histogram,label1 value1 label2 value2 label3 value3 label4 value4 ,3657 6213 1632 3360 1221 +metricName344,histogram,label1 value1 label2 value2 label3 value3 ,3383 6851 1 3559 3291 +metricName345,gauge,label1 value1 label2 value2 label3 value3 label4 value4 ,4869 +metricName346,counter,label1 value1 label2 value2 label3 value3 ,3296 +metricName347,summary,label1 value1 label2 value2 label3 value3 ,4788 167 0.098895 0.617929 0.449358 +metricName348,gauge,label1 value1 label2 value2 label3 value3 label4 value4 ,2593 +metricName349,counter,label1 value1 label2 value2 ,3007 +metricName350,counter,label1 value1 label2 value2 label3 value3 ,3224 +metricName351,histogram,label1 value1 label2 value2 label3 value3 label4 value4 ,4793 11228 4641 4721 1866 +metricName352,gauge,label1 value1 label2 value2 ,906 +metricName353,gauge,label1 value1 label2 value2 ,956 +metricName354,summary,label1 value1 label2 value2 ,2935 118 0.688000 0.388398 0.698151 +metricName355,counter,label1 value1 label2 value2 ,4233 +metricName356,histogram,label1 value1 ,4140 9391 4303 4910 178 +metricName357,counter,label1 value1 label2 value2 label3 value3 label4 value4 ,3412 +metricName358,gauge,label1 value1 label2 value2 label3 value3 ,4437 +metricName359,gauge,label1 value1 label2 value2 label3 value3 label4 value4 ,3825 +metricName360,histogram,label1 value1 label2 value2 label3 value3 label4 value4 ,1624 5115 3837 1233 45 +metricName361,summary,label1 value1 ,928 4031 0.807332 0.832092 0.701700 +metricName362,counter,label1 value1 label2 value2 label3 value3 ,3287 +metricName363,histogram,label1 value1 label2 value2 label3 value3 label4 value4 ,1552 6375 482 3708 2185 +metricName364,counter,label1 value1 label2 value2 label3 value3 label4 value4 ,370 +metricName365,counter,label1 value1 ,2593 +metricName366,counter,label1 value1 label2 value2 label3 value3 label4 value4 ,4340 +metricName367,counter,label1 value1 ,431 +metricName368,gauge,label1 value1 label2 value2 ,3788 +metricName369,counter,label1 value1 ,3996 +metricName370,gauge,label1 value1 label2 value2 label3 value3 label4 value4 ,3790 +metricName371,histogram,label1 value1 ,4579 9227 4410 813 4004 +metricName372,gauge,label1 value1 label2 value2 label3 value3 label4 value4 ,3581 +metricName373,summary,label1 value1 label2 value2 label3 value3 ,3637 1423 0.845071 0.455142 0.338444 +metricName374,summary,label1 value1 label2 value2 ,147 3310 0.203074 0.758048 0.638762 +metricName375,counter,label1 value1 ,2966 +metricName376,gauge,label1 value1 label2 value2 label3 value3 ,3696 +metricName377,summary,label1 value1 label2 value2 ,3787 2417 0.344927 0.576797 0.647920 +metricName378,gauge,label1 value1 label2 value2 label3 value3 ,3172 +metricName379,gauge,label1 value1 label2 value2 label3 value3 ,164 +metricName380,gauge,label1 value1 label2 value2 ,4547 +metricName381,counter,label1 value1 ,4530 +metricName382,histogram,label1 value1 label2 value2 label3 value3 ,3751 2355 1589 128 638 +metricName383,summary,label1 value1 label2 value2 label3 value3 ,858 3319 0.532181 0.233198 0.256264 +metricName384,gauge,label1 value1 ,4684 +metricName385,histogram,label1 value1 label2 value2 label3 value3 label4 value4 ,310 6666 4445 1316 905 +metricName386,histogram,label1 value1 label2 value2 label3 value3 ,1236 8121 1970 2312 3839 +metricName387,histogram,label1 value1 ,4098 10048 4215 4873 960 +metricName388,gauge,label1 value1 label2 value2 label3 value3 ,4505 +metricName389,gauge,label1 value1 ,349 +metricName390,counter,label1 value1 ,3732 +metricName391,summary,label1 value1 ,2284 1469 0.650253 0.483174 0.907553 +metricName392,summary,label1 value1 label2 value2 ,327 402 0.642643 0.695404 0.387905 +metricName393,histogram,label1 value1 label2 value2 label3 value3 ,3468 10983 4982 3676 2325 +metricName394,counter,label1 value1 label2 value2 label3 value3 label4 value4 ,2936 +metricName395,summary,label1 value1 ,2717 1855 0.246065 0.184472 0.760804 +metricName396,histogram,label1 value1 label2 value2 label3 value3 ,3855 7118 2424 1345 3349 +metricName397,counter,label1 value1 label2 value2 label3 value3 ,1709 +metricName398,counter,label1 value1 label2 value2 label3 value3 ,4385 +metricName399,histogram,label1 value1 label2 value2 ,3294 9920 4753 2733 2434 +metricName400,counter,label1 value1 ,4643 +metricName401,counter,label1 value1 label2 value2 label3 value3 ,4431 +metricName402,summary,label1 value1 label2 value2 ,448 3691 0.095715 0.607589 0.723138 +metricName403,summary,label1 value1 ,2449 3229 0.691471 0.990483 0.350165 +metricName404,counter,label1 value1 ,3101 +metricName405,summary,label1 value1 label2 value2 ,1078 2152 0.640094 0.673291 0.332182 +metricName406,counter,label1 value1 label2 value2 label3 value3 ,1092 +metricName407,counter,label1 value1 label2 value2 ,4370 +metricName408,gauge,label1 value1 ,1637 +metricName409,gauge,label1 value1 label2 value2 label3 value3 ,2239 +metricName410,summary,label1 value1 label2 value2 label3 value3 ,120 3752 0.809432 0.234885 0.008285 +metricName411,gauge,label1 value1 label2 value2 label3 value3 ,2291 +metricName412,summary,label1 value1 label2 value2 label3 value3 ,952 2118 0.253348 0.056480 0.942923 +metricName413,summary,label1 value1 label2 value2 label3 value3 label4 value4 ,2367 1483 0.223642 0.891428 0.943952 +metricName414,counter,label1 value1 label2 value2 ,3467 +metricName415,histogram,label1 value1 label2 value2 label3 value3 ,741 6984 2127 2659 2198 +metricName416,histogram,label1 value1 ,3867 10894 3723 2379 4792 +metricName417,counter,label1 value1 label2 value2 label3 value3 ,3600 +metricName418,histogram,label1 value1 label2 value2 label3 value3 ,976 9018 856 4666 3496 +metricName419,counter,label1 value1 label2 value2 label3 value3 label4 value4 ,3228 +metricName420,summary,label1 value1 label2 value2 ,3711 2607 0.051809 0.286314 0.786302 +metricName421,gauge,label1 value1 label2 value2 label3 value3 label4 value4 ,4301 +metricName422,gauge,label1 value1 label2 value2 ,3812 +metricName423,summary,label1 value1 ,2217 258 0.977461 0.838687 0.982646 +metricName424,histogram,label1 value1 label2 value2 ,4076 7446 3320 3643 483 +metricName425,histogram,label1 value1 label2 value2 ,455 8506 1884 1790 4832 +metricName426,counter,label1 value1 label2 value2 label3 value3 label4 value4 ,1603 +metricName427,histogram,label1 value1 label2 value2 ,2440 9428 2943 2448 4037 +metricName428,gauge,label1 value1 label2 value2 label3 value3 ,4360 +metricName429,histogram,label1 value1 ,405 8916 3221 1472 4223 +metricName430,histogram,label1 value1 label2 value2 label3 value3 label4 value4 ,175 9342 2920 3839 2583 +metricName431,histogram,label1 value1 ,3873 3582 1313 1288 981 +metricName432,gauge,label1 value1 label2 value2 label3 value3 ,4698 +metricName433,counter,label1 value1 label2 value2 label3 value3 ,3396 +metricName434,summary,label1 value1 label2 value2 ,998 300 0.749992 0.264211 0.302036 +metricName435,gauge,label1 value1 label2 value2 label3 value3 ,2483 +metricName436,counter,label1 value1 label2 value2 label3 value3 ,554 +metricName437,summary,label1 value1 ,4995 4648 0.708315 0.848777 0.817621 +metricName438,gauge,label1 value1 ,3904 +metricName439,gauge,label1 value1 label2 value2 label3 value3 label4 value4 ,2321 +metricName440,counter,label1 value1 ,1842 +metricName441,histogram,label1 value1 ,3037 10795 1379 4861 4555 +metricName442,gauge,label1 value1 label2 value2 label3 value3 label4 value4 ,1892 +metricName443,gauge,label1 value1 label2 value2 label3 value3 label4 value4 ,280 +metricName444,histogram,label1 value1 ,1915 10301 4485 3932 1884 +metricName445,histogram,label1 value1 label2 value2 ,4223 7272 1203 3219 2850 +metricName446,gauge,label1 value1 label2 value2 label3 value3 label4 value4 ,4827 +metricName447,counter,label1 value1 ,969 +metricName448,histogram,label1 value1 label2 value2 ,4025 7177 2906 700 3571 +metricName449,histogram,label1 value1 label2 value2 ,813 5457 3671 406 1380 +metricName450,summary,label1 value1 label2 value2 label3 value3 label4 value4 ,1349 1077 0.872392 0.096917 0.701352 +metricName451,summary,label1 value1 label2 value2 ,2469 922 0.077860 0.454899 0.529170 +metricName452,summary,label1 value1 label2 value2 label3 value3 ,4170 1810 0.813875 0.159474 0.929552 +metricName453,gauge,label1 value1 ,2165 +metricName454,histogram,label1 value1 ,985 9027 3705 1604 3718 +metricName455,counter,label1 value1 ,739 +metricName456,counter,label1 value1 ,4260 +metricName457,summary,label1 value1 label2 value2 label3 value3 label4 value4 ,1123 4051 0.439481 0.893744 0.778288 +metricName458,gauge,label1 value1 label2 value2 label3 value3 label4 value4 ,4514 +metricName459,summary,label1 value1 label2 value2 label3 value3 ,4497 3339 0.641149 0.232546 0.771113 +metricName460,summary,label1 value1 label2 value2 label3 value3 label4 value4 ,271 1001 0.074100 0.307619 0.688608 +metricName461,gauge,label1 value1 ,1440 +metricName462,summary,label1 value1 ,4640 3077 0.418210 0.876844 0.991176 +metricName463,summary,label1 value1 label2 value2 label3 value3 ,3714 1409 0.413448 0.432968 0.448752 +metricName464,summary,label1 value1 label2 value2 label3 value3 ,2283 1978 0.745180 0.189514 0.938810 +metricName465,summary,label1 value1 label2 value2 label3 value3 label4 value4 ,4237 4352 0.560289 0.829436 0.113094 +metricName466,summary,label1 value1 label2 value2 ,3650 2406 0.438972 0.789093 0.055286 +metricName467,summary,label1 value1 label2 value2 label3 value3 ,171 4348 0.846407 0.758662 0.366981 +metricName468,histogram,label1 value1 label2 value2 label3 value3 label4 value4 ,2278 8103 1434 3969 2700 +metricName469,summary,label1 value1 label2 value2 ,3462 526 0.084411 0.969081 0.585682 +metricName470,summary,label1 value1 label2 value2 ,2819 2842 0.800437 0.985856 0.015309 +metricName471,summary,label1 value1 ,4513 729 0.294940 0.476640 0.464878 +metricName472,summary,label1 value1 ,4316 3416 0.626449 0.071259 0.338837 +metricName473,counter,label1 value1 label2 value2 label3 value3 label4 value4 ,4416 +metricName474,summary,label1 value1 label2 value2 ,4971 215 0.478571 0.755276 0.565956 +metricName475,histogram,label1 value1 label2 value2 label3 value3 ,973 1992 357 478 1157 +metricName476,gauge,label1 value1 label2 value2 label3 value3 label4 value4 ,3738 +metricName477,gauge,label1 value1 label2 value2 label3 value3 ,1224 +metricName478,histogram,label1 value1 label2 value2 ,4482 5325 931 2090 2304 +metricName479,summary,label1 value1 label2 value2 label3 value3 ,1779 4969 0.218984 0.478845 0.065981 +metricName480,histogram,label1 value1 label2 value2 ,4156 9498 3223 3594 2681 +metricName481,counter,label1 value1 label2 value2 label3 value3 ,754 +metricName482,histogram,label1 value1 label2 value2 label3 value3 ,1609 3694 618 1332 1744 +metricName483,gauge,label1 value1 ,2468 +metricName484,histogram,label1 value1 label2 value2 label3 value3 ,3676 9929 4437 2710 2782 +metricName485,histogram,label1 value1 label2 value2 label3 value3 label4 value4 ,4430 8993 2458 4325 2210 +metricName486,histogram,label1 value1 label2 value2 ,1048 3681 838 2567 276 +metricName487,gauge,label1 value1 label2 value2 ,4637 +metricName488,counter,label1 value1 label2 value2 label3 value3 ,4908 +metricName489,counter,label1 value1 label2 value2 label3 value3 ,2677 +metricName490,histogram,label1 value1 label2 value2 label3 value3 ,1021 9758 3877 4572 1309 +metricName491,histogram,label1 value1 label2 value2 label3 value3 label4 value4 ,2754 9241 4226 4142 873 +metricName492,histogram,label1 value1 ,872 8511 3732 1433 3346 +metricName493,histogram,label1 value1 label2 value2 ,1918 5460 2705 2653 102 +metricName494,histogram,label1 value1 label2 value2 ,3338 10296 4236 4186 1874 +metricName495,counter,label1 value1 label2 value2 label3 value3 ,3599 +metricName496,histogram,label1 value1 ,2501 9697 722 4372 4603 +metricName497,summary,label1 value1 label2 value2 ,682 3345 0.213088 0.555559 0.309229 +metricName498,histogram,label1 value1 label2 value2 label3 value3 ,3523 8142 2229 1514 4399 +metricName499,counter,label1 value1 label2 value2 label3 value3 ,4662 +metricName500,counter,label1 value1 label2 value2 label3 value3 ,3279 +metricName501,counter,label1 value1 label2 value2 label3 value3 ,504 +metricName502,summary,label1 value1 label2 value2 ,3666 1804 0.664311 0.559041 0.178414 +metricName503,counter,label1 value1 ,2921 +metricName504,gauge,label1 value1 ,3852 +metricName505,gauge,label1 value1 label2 value2 label3 value3 ,4927 +metricName506,gauge,label1 value1 label2 value2 label3 value3 label4 value4 ,3072 +metricName507,gauge,label1 value1 label2 value2 label3 value3 ,1981 +metricName508,summary,label1 value1 ,4433 2401 0.270123 0.795448 0.815411 +metricName509,counter,label1 value1 label2 value2 label3 value3 label4 value4 ,2360 +metricName510,histogram,label1 value1 ,710 833 169 18 646 +metricName511,summary,label1 value1 label2 value2 ,4332 3038 0.171721 0.833756 0.261565 +metricName512,gauge,label1 value1 ,4526 +metricName513,counter,label1 value1 label2 value2 ,1828 +metricName514,counter,label1 value1 label2 value2 ,4951 +metricName515,summary,label1 value1 label2 value2 ,2934 3642 0.013987 0.181977 0.806115 +metricName516,gauge,label1 value1 label2 value2 label3 value3 label4 value4 ,4974 +metricName517,summary,label1 value1 ,4877 1220 0.375465 0.327556 0.980226 +metricName518,histogram,label1 value1 label2 value2 ,3141 9434 3834 2086 3514 +metricName519,histogram,label1 value1 label2 value2 label3 value3 ,4412 2602 1662 697 243 +metricName520,gauge,label1 value1 label2 value2 ,1562 +metricName521,histogram,label1 value1 label2 value2 ,513 6892 534 3691 2667 +metricName522,summary,label1 value1 label2 value2 ,3994 186 0.507827 0.337154 0.496229 +metricName523,histogram,label1 value1 label2 value2 label3 value3 ,4219 6089 873 2489 2727 +metricName524,summary,label1 value1 label2 value2 label3 value3 label4 value4 ,3725 3917 0.812103 0.477867 0.807062 +metricName525,summary,label1 value1 ,1719 2439 0.339691 0.516425 0.258799 +metricName526,gauge,label1 value1 ,4233 +metricName527,counter,label1 value1 label2 value2 label3 value3 ,2137 +metricName528,summary,label1 value1 label2 value2 label3 value3 ,1761 2889 0.878085 0.158512 0.623983 +metricName529,counter,label1 value1 ,2078 +metricName530,histogram,label1 value1 label2 value2 ,3358 7374 2078 2726 2570 +metricName531,histogram,label1 value1 label2 value2 label3 value3 ,3448 10454 4103 3651 2700 +metricName532,counter,label1 value1 ,1163 +metricName533,gauge,label1 value1 label2 value2 label3 value3 label4 value4 ,4263 +metricName534,histogram,label1 value1 label2 value2 label3 value3 ,4745 9110 885 4651 3574 +metricName535,histogram,label1 value1 label2 value2 label3 value3 ,3855 8435 350 3297 4788 +metricName536,gauge,label1 value1 ,3205 +metricName537,counter,label1 value1 label2 value2 ,1540 +metricName538,gauge,label1 value1 ,1256 +metricName539,summary,label1 value1 label2 value2 ,4366 3997 0.529158 0.294035 0.806775 +metricName540,histogram,label1 value1 label2 value2 label3 value3 label4 value4 ,1610 10863 2588 3444 4831 +metricName541,gauge,label1 value1 label2 value2 label3 value3 ,1511 +metricName542,counter,label1 value1 label2 value2 label3 value3 ,4073 +metricName543,histogram,label1 value1 ,467 8149 3516 2613 2020 +metricName544,summary,label1 value1 label2 value2 label3 value3 label4 value4 ,4376 3512 0.560729 0.296766 0.368349 +metricName545,histogram,label1 value1 label2 value2 label3 value3 label4 value4 ,1320 2734 2134 561 39 +metricName546,gauge,label1 value1 label2 value2 label3 value3 label4 value4 ,3235 +metricName547,histogram,label1 value1 label2 value2 ,442 7412 4163 954 2295 +metricName548,gauge,label1 value1 ,1837 +metricName549,counter,label1 value1 ,2533 +metricName550,histogram,label1 value1 label2 value2 label3 value3 ,371 9011 1745 4536 2730 +metricName551,gauge,label1 value1 ,4742 +metricName552,histogram,label1 value1 label2 value2 label3 value3 label4 value4 ,2178 12662 3455 4413 4794 +metricName553,summary,label1 value1 label2 value2 ,3301 1867 0.698554 0.390186 0.006015 +metricName554,gauge,label1 value1 label2 value2 label3 value3 ,2477 +metricName555,counter,label1 value1 label2 value2 label3 value3 ,811 +metricName556,histogram,label1 value1 ,3427 10194 4643 4200 1351 +metricName557,summary,label1 value1 ,1957 1491 0.531255 0.316494 0.440829 +metricName558,counter,label1 value1 label2 value2 label3 value3 label4 value4 ,3713 +metricName559,histogram,label1 value1 ,3790 7331 2542 2422 2367 +metricName560,summary,label1 value1 label2 value2 label3 value3 ,4406 3259 0.368051 0.797296 0.042162 +metricName561,histogram,label1 value1 label2 value2 label3 value3 label4 value4 ,1173 6311 325 4846 1140 +metricName562,gauge,label1 value1 label2 value2 label3 value3 ,3701 +metricName563,summary,label1 value1 label2 value2 label3 value3 label4 value4 ,2307 1404 0.794105 0.818356 0.697900 +metricName564,summary,label1 value1 label2 value2 label3 value3 label4 value4 ,1668 4005 0.120326 0.101846 0.005910 +metricName565,counter,label1 value1 label2 value2 label3 value3 ,356 +metricName566,gauge,label1 value1 label2 value2 label3 value3 label4 value4 ,630 +metricName567,counter,label1 value1 label2 value2 label3 value3 label4 value4 ,2383 +metricName568,summary,label1 value1 label2 value2 label3 value3 ,4882 2431 0.228055 0.609108 0.556057 +metricName569,summary,label1 value1 label2 value2 label3 value3 label4 value4 ,3366 2116 0.844450 0.373133 0.625979 +metricName570,summary,label1 value1 ,4743 2976 0.941833 0.303862 0.990118 +metricName571,gauge,label1 value1 label2 value2 label3 value3 label4 value4 ,3477 +metricName572,summary,label1 value1 label2 value2 label3 value3 label4 value4 ,1097 200 0.856553 0.105270 0.839742 +metricName573,counter,label1 value1 ,646 +metricName574,summary,label1 value1 ,4766 755 0.547071 0.577377 0.007525 +metricName575,gauge,label1 value1 label2 value2 label3 value3 label4 value4 ,1530 +metricName576,gauge,label1 value1 label2 value2 label3 value3 ,4303 +metricName577,histogram,label1 value1 label2 value2 ,4788 11198 4963 3009 3226 +metricName578,counter,label1 value1 ,751 +metricName579,counter,label1 value1 label2 value2 ,699 +metricName580,histogram,label1 value1 label2 value2 label3 value3 ,2500 7528 3121 3343 1064 +metricName581,gauge,label1 value1 label2 value2 label3 value3 label4 value4 ,2168 +metricName582,summary,label1 value1 label2 value2 ,4850 2084 0.512445 0.442135 0.277200 +metricName583,summary,label1 value1 label2 value2 label3 value3 ,22 3291 0.811878 0.141107 0.363797 +metricName584,gauge,label1 value1 label2 value2 ,3170 +metricName585,gauge,label1 value1 ,2876 +metricName586,histogram,label1 value1 label2 value2 label3 value3 label4 value4 ,2135 6639 1788 4056 795 +metricName587,summary,label1 value1 label2 value2 label3 value3 ,1538 2595 0.919240 0.932022 0.915536 +metricName588,counter,label1 value1 label2 value2 label3 value3 label4 value4 ,3301 +metricName589,histogram,label1 value1 label2 value2 label3 value3 ,22 7968 2312 3666 1990 +metricName590,counter,label1 value1 label2 value2 ,233 +metricName591,gauge,label1 value1 label2 value2 ,2704 +metricName592,gauge,label1 value1 label2 value2 label3 value3 ,1785 +metricName593,histogram,label1 value1 ,3020 9547 2485 2737 4325 +metricName594,histogram,label1 value1 label2 value2 label3 value3 label4 value4 ,4674 6248 3371 238 2639 +metricName595,histogram,label1 value1 label2 value2 label3 value3 label4 value4 ,2435 3033 1361 867 805 +metricName596,counter,label1 value1 label2 value2 label3 value3 label4 value4 ,2712 +metricName597,histogram,label1 value1 label2 value2 label3 value3 ,1279 5526 3084 1813 629 +metricName598,counter,label1 value1 label2 value2 label3 value3 ,2243 +metricName599,histogram,label1 value1 label2 value2 label3 value3 ,4194 6645 3128 2932 585 +metricName600,histogram,label1 value1 label2 value2 label3 value3 label4 value4 ,857 7162 3829 2629 704 +metricName601,histogram,label1 value1 label2 value2 label3 value3 label4 value4 ,126 10213 2985 2768 4460 +metricName602,histogram,label1 value1 label2 value2 label3 value3 label4 value4 ,3816 4287 1650 1825 812 +metricName603,summary,label1 value1 label2 value2 label3 value3 label4 value4 ,4397 952 0.336547 0.010152 0.026633 +metricName604,gauge,label1 value1 label2 value2 ,1029 +metricName605,counter,label1 value1 label2 value2 label3 value3 ,2684 +metricName606,summary,label1 value1 label2 value2 label3 value3 label4 value4 ,2676 3052 0.346711 0.762710 0.898522 +metricName607,counter,label1 value1 label2 value2 label3 value3 ,3406 +metricName608,counter,label1 value1 label2 value2 label3 value3 label4 value4 ,3923 +metricName609,gauge,label1 value1 label2 value2 label3 value3 label4 value4 ,2393 +metricName610,counter,label1 value1 ,3061 +metricName611,summary,label1 value1 ,3185 2506 0.182716 0.872442 0.447302 +metricName612,summary,label1 value1 label2 value2 label3 value3 label4 value4 ,425 1919 0.427660 0.247590 0.473267 +metricName613,gauge,label1 value1 label2 value2 ,320 +metricName614,summary,label1 value1 ,2170 470 0.609091 0.106815 0.314269 +metricName615,gauge,label1 value1 ,21 +metricName616,counter,label1 value1 label2 value2 label3 value3 ,3692 +metricName617,summary,label1 value1 ,1451 3799 0.111496 0.927619 0.030255 +metricName618,gauge,label1 value1 label2 value2 label3 value3 ,3578 +metricName619,gauge,label1 value1 label2 value2 label3 value3 label4 value4 ,3210 +metricName620,counter,label1 value1 label2 value2 label3 value3 label4 value4 ,4696 +metricName621,counter,label1 value1 label2 value2 ,4675 +metricName622,summary,label1 value1 ,3532 2597 0.944976 0.128409 0.001651 +metricName623,summary,label1 value1 label2 value2 label3 value3 ,794 4560 0.612257 0.658348 0.312444 +metricName624,counter,label1 value1 label2 value2 ,1082 +metricName625,gauge,label1 value1 ,742 +metricName626,summary,label1 value1 label2 value2 label3 value3 label4 value4 ,634 954 0.271861 0.649408 0.317554 +metricName627,summary,label1 value1 label2 value2 label3 value3 label4 value4 ,123 4057 0.833411 0.155294 0.175188 +metricName628,counter,label1 value1 label2 value2 ,4832 +metricName629,gauge,label1 value1 label2 value2 ,2462 +metricName630,histogram,label1 value1 label2 value2 label3 value3 ,4701 3803 1659 1832 312 +metricName631,histogram,label1 value1 label2 value2 label3 value3 ,4707 11086 4932 2033 4121 +metricName632,gauge,label1 value1 label2 value2 ,1800 +metricName633,summary,label1 value1 ,1946 112 0.926922 0.235902 0.877399 +metricName634,counter,label1 value1 ,2109 +metricName635,histogram,label1 value1 label2 value2 label3 value3 label4 value4 ,4806 10031 2424 3675 3932 +metricName636,histogram,label1 value1 label2 value2 label3 value3 label4 value4 ,1903 6263 2934 1461 1868 +metricName637,summary,label1 value1 ,4422 2372 0.883318 0.731929 0.341363 +metricName638,counter,label1 value1 ,1806 +metricName639,summary,label1 value1 label2 value2 label3 value3 ,1836 3388 0.450825 0.258605 0.754823 +metricName640,gauge,label1 value1 label2 value2 ,4068 +metricName641,gauge,label1 value1 label2 value2 ,463 +metricName642,summary,label1 value1 ,597 3048 0.651901 0.686518 0.934819 +metricName643,gauge,label1 value1 label2 value2 label3 value3 ,3141 +metricName644,histogram,label1 value1 label2 value2 ,4500 1822 649 153 1020 +metricName645,histogram,label1 value1 ,3945 9951 2923 2719 4309 +metricName646,counter,label1 value1 label2 value2 ,139 +metricName647,summary,label1 value1 label2 value2 label3 value3 ,1010 535 0.260596 0.287426 0.720234 +metricName648,counter,label1 value1 ,306 +metricName649,gauge,label1 value1 ,4003 +metricName650,counter,label1 value1 label2 value2 label3 value3 ,212 +metricName651,gauge,label1 value1 label2 value2 ,2144 +metricName652,summary,label1 value1 ,3655 2757 0.381295 0.403152 0.308632 +metricName653,histogram,label1 value1 ,4505 9648 3310 1844 4494 +metricName654,summary,label1 value1 label2 value2 label3 value3 ,1146 4153 0.840558 0.770186 0.541469 +metricName655,counter,label1 value1 label2 value2 ,4249 +metricName656,gauge,label1 value1 ,3507 +metricName657,gauge,label1 value1 label2 value2 label3 value3 ,2495 +metricName658,summary,label1 value1 label2 value2 ,3166 2752 0.465469 0.652720 0.069310 +metricName659,histogram,label1 value1 label2 value2 label3 value3 label4 value4 ,2590 5208 2038 1217 1953 +metricName660,histogram,label1 value1 ,2335 6472 4590 1088 794 +metricName661,gauge,label1 value1 label2 value2 label3 value3 ,4323 +metricName662,histogram,label1 value1 label2 value2 label3 value3 label4 value4 ,2190 9939 2356 4317 3266 +metricName663,counter,label1 value1 label2 value2 label3 value3 ,1886 +metricName664,histogram,label1 value1 label2 value2 label3 value3 label4 value4 ,618 9571 3076 4217 2278 +metricName665,gauge,label1 value1 ,3133 +metricName666,counter,label1 value1 label2 value2 label3 value3 label4 value4 ,604 +metricName667,histogram,label1 value1 label2 value2 label3 value3 label4 value4 ,2781 4203 1423 1446 1334 +metricName668,summary,label1 value1 ,3809 4502 0.181036 0.864084 0.567450 +metricName669,summary,label1 value1 ,1796 3239 0.747453 0.238698 0.409980 +metricName670,gauge,label1 value1 label2 value2 label3 value3 ,2393 +metricName671,gauge,label1 value1 label2 value2 label3 value3 label4 value4 ,735 +metricName672,histogram,label1 value1 label2 value2 ,3108 7838 2081 910 4847 +metricName673,gauge,label1 value1 label2 value2 label3 value3 ,3048 +metricName674,counter,label1 value1 ,3238 +metricName675,summary,label1 value1 label2 value2 label3 value3 label4 value4 ,3746 594 0.876074 0.638437 0.254898 +metricName676,histogram,label1 value1 label2 value2 label3 value3 ,4956 9869 2464 4396 3009 +metricName677,counter,label1 value1 label2 value2 ,1420 +metricName678,histogram,label1 value1 label2 value2 label3 value3 ,3339 7893 4417 2529 947 +metricName679,summary,label1 value1 ,3537 709 0.482247 0.450055 0.529270 +metricName680,histogram,label1 value1 ,3306 9650 2788 2691 4171 +metricName681,histogram,label1 value1 ,275 7440 2891 2953 1596 +metricName682,summary,label1 value1 label2 value2 ,1252 152 0.450399 0.550951 0.525794 +metricName683,gauge,label1 value1 label2 value2 ,723 +metricName684,histogram,label1 value1 label2 value2 label3 value3 ,3099 5326 190 3800 1336 +metricName685,counter,label1 value1 label2 value2 ,4872 +metricName686,gauge,label1 value1 label2 value2 ,2590 +metricName687,summary,label1 value1 label2 value2 label3 value3 ,4372 4969 0.560223 0.904133 0.337048 +metricName688,gauge,label1 value1 label2 value2 ,1890 +metricName689,histogram,label1 value1 label2 value2 label3 value3 ,4157 10229 4197 3937 2095 +metricName690,histogram,label1 value1 label2 value2 ,1353 10850 2110 4572 4168 +metricName691,summary,label1 value1 label2 value2 label3 value3 ,1188 1058 0.404718 0.196561 0.789752 +metricName692,histogram,label1 value1 label2 value2 label3 value3 label4 value4 ,3088 11848 3135 3885 4828 +metricName693,gauge,label1 value1 label2 value2 label3 value3 label4 value4 ,1289 +metricName694,summary,label1 value1 label2 value2 ,1339 1951 0.141138 0.368769 0.280795 +metricName695,summary,label1 value1 label2 value2 ,3833 3677 0.380802 0.221433 0.744603 +metricName696,summary,label1 value1 label2 value2 label3 value3 ,4123 1163 0.110501 0.299387 0.034930 +metricName697,gauge,label1 value1 label2 value2 label3 value3 ,3835 +metricName698,counter,label1 value1 label2 value2 label3 value3 ,3511 +metricName699,gauge,label1 value1 label2 value2 label3 value3 label4 value4 ,2 +metricName700,histogram,label1 value1 label2 value2 label3 value3 label4 value4 ,1216 5199 119 4704 376 +metricName701,summary,label1 value1 label2 value2 label3 value3 ,4376 4091 0.991330 0.717397 0.738674 +metricName702,histogram,label1 value1 label2 value2 label3 value3 ,656 8121 2469 4409 1243 +metricName703,summary,label1 value1 label2 value2 ,1157 3947 0.009897 0.198497 0.930285 +metricName704,counter,label1 value1 ,2631 +metricName705,histogram,label1 value1 ,4211 7990 3208 3020 1762 +metricName706,histogram,label1 value1 ,912 7203 1587 1645 3971 +metricName707,gauge,label1 value1 label2 value2 label3 value3 ,4794 +metricName708,counter,label1 value1 label2 value2 ,1590 +metricName709,histogram,label1 value1 label2 value2 ,2563 6356 54 1626 4676 +metricName710,histogram,label1 value1 label2 value2 ,4422 8000 2802 315 4883 +metricName711,summary,label1 value1 label2 value2 label3 value3 ,2094 881 0.608486 0.713793 0.267542 +metricName712,histogram,label1 value1 label2 value2 ,871 6517 165 4355 1997 +metricName713,counter,label1 value1 label2 value2 ,3727 +metricName714,summary,label1 value1 label2 value2 ,1111 3234 0.472023 0.131507 0.914151 +metricName715,counter,label1 value1 label2 value2 label3 value3 ,209 +metricName716,histogram,label1 value1 label2 value2 label3 value3 ,836 10286 1885 4679 3722 +metricName717,counter,label1 value1 label2 value2 label3 value3 label4 value4 ,1173 +metricName718,summary,label1 value1 label2 value2 ,3869 3258 0.208349 0.395384 0.356849 +metricName719,gauge,label1 value1 label2 value2 label3 value3 ,2762 +metricName720,gauge,label1 value1 label2 value2 label3 value3 label4 value4 ,1107 +metricName721,summary,label1 value1 ,3555 3611 0.917244 0.887941 0.959495 +metricName722,gauge,label1 value1 ,3888 +metricName723,gauge,label1 value1 label2 value2 label3 value3 label4 value4 ,1277 +metricName724,counter,label1 value1 ,4486 +metricName725,summary,label1 value1 ,4032 1374 0.597992 0.094897 0.408712 +metricName726,histogram,label1 value1 label2 value2 label3 value3 label4 value4 ,3359 7897 4850 1722 1325 +metricName727,gauge,label1 value1 label2 value2 ,4873 +metricName728,gauge,label1 value1 label2 value2 ,4698 +metricName729,histogram,label1 value1 ,1310 2873 1051 519 1303 +metricName730,summary,label1 value1 ,4347 3352 0.546772 0.119438 0.874014 +metricName731,counter,label1 value1 label2 value2 label3 value3 ,4472 +metricName732,gauge,label1 value1 label2 value2 label3 value3 ,1895 +metricName733,gauge,label1 value1 label2 value2 ,1745 +metricName734,counter,label1 value1 label2 value2 label3 value3 label4 value4 ,3812 +metricName735,histogram,label1 value1 ,2742 10585 4125 1998 4462 +metricName736,summary,label1 value1 label2 value2 label3 value3 label4 value4 ,3708 812 0.337471 0.367786 0.905021 +metricName737,counter,label1 value1 label2 value2 label3 value3 label4 value4 ,2052 +metricName738,histogram,label1 value1 label2 value2 label3 value3 ,2593 7852 1869 2623 3360 +metricName739,summary,label1 value1 label2 value2 ,1230 2894 0.178717 0.085180 0.709698 +metricName740,gauge,label1 value1 label2 value2 label3 value3 ,1684 +metricName741,gauge,label1 value1 label2 value2 label3 value3 ,4587 +metricName742,histogram,label1 value1 label2 value2 ,1116 10272 4471 1375 4426 +metricName743,counter,label1 value1 label2 value2 ,2206 +metricName744,gauge,label1 value1 label2 value2 label3 value3 label4 value4 ,1991 +metricName745,gauge,label1 value1 ,4987 +metricName746,gauge,label1 value1 label2 value2 ,1732 +metricName747,summary,label1 value1 label2 value2 label3 value3 ,4589 3294 0.872346 0.104710 0.401213 +metricName748,histogram,label1 value1 label2 value2 label3 value3 label4 value4 ,243 8265 3376 3136 1753 +metricName749,summary,label1 value1 ,2580 3256 0.447603 0.633337 0.713393 +metricName750,gauge,label1 value1 label2 value2 label3 value3 ,1725 +metricName751,summary,label1 value1 label2 value2 label3 value3 label4 value4 ,3645 4776 0.790546 0.686322 0.562236 +metricName752,histogram,label1 value1 label2 value2 ,3012 8115 2891 2266 2958 +metricName753,histogram,label1 value1 label2 value2 ,1065 10199 2590 4680 2929 +metricName754,counter,label1 value1 label2 value2 label3 value3 label4 value4 ,4536 +metricName755,histogram,label1 value1 label2 value2 label3 value3 label4 value4 ,181 5784 862 1380 3542 +metricName756,counter,label1 value1 label2 value2 label3 value3 label4 value4 ,2949 +metricName757,counter,label1 value1 label2 value2 ,1505 +metricName758,counter,label1 value1 ,3069 +metricName759,summary,label1 value1 label2 value2 label3 value3 label4 value4 ,4009 832 0.148264 0.010811 0.721755 +metricName760,counter,label1 value1 ,3185 +metricName761,summary,label1 value1 ,4965 3039 0.730305 0.595537 0.317861 +metricName762,counter,label1 value1 ,1576 +metricName763,gauge,label1 value1 label2 value2 label3 value3 ,154 +metricName764,summary,label1 value1 label2 value2 label3 value3 ,4381 3198 0.018470 0.521475 0.144481 +metricName765,histogram,label1 value1 label2 value2 ,718 5629 2360 1703 1566 +metricName766,summary,label1 value1 label2 value2 ,2070 19 0.744131 0.195333 0.324738 +metricName767,summary,label1 value1 label2 value2 label3 value3 ,611 1648 0.227925 0.156587 0.867393 +metricName768,gauge,label1 value1 label2 value2 label3 value3 label4 value4 ,4662 +metricName769,counter,label1 value1 ,2386 +metricName770,counter,label1 value1 label2 value2 label3 value3 label4 value4 ,1897 +metricName771,summary,label1 value1 ,4237 17 0.661529 0.954867 0.574492 +metricName772,gauge,label1 value1 label2 value2 label3 value3 ,997 +metricName773,counter,label1 value1 label2 value2 label3 value3 label4 value4 ,4515 +metricName774,summary,label1 value1 label2 value2 label3 value3 label4 value4 ,735 3393 0.213541 0.688149 0.146677 +metricName775,histogram,label1 value1 label2 value2 ,537 6793 2361 287 4145 +metricName776,summary,label1 value1 label2 value2 ,2512 2597 0.459099 0.088916 0.611501 +metricName777,histogram,label1 value1 label2 value2 label3 value3 label4 value4 ,964 9080 190 4284 4606 +metricName778,gauge,label1 value1 label2 value2 label3 value3 ,2458 +metricName779,histogram,label1 value1 ,174 1490 185 395 910 +metricName780,histogram,label1 value1 label2 value2 label3 value3 ,3911 9379 2462 2086 4831 +metricName781,summary,label1 value1 label2 value2 label3 value3 label4 value4 ,4445 1525 0.752227 0.722926 0.308498 +metricName782,gauge,label1 value1 label2 value2 label3 value3 ,2643 +metricName783,gauge,label1 value1 label2 value2 ,2420 +metricName784,counter,label1 value1 ,4773 +metricName785,gauge,label1 value1 ,2314 +metricName786,counter,label1 value1 ,2043 +metricName787,gauge,label1 value1 ,3101 +metricName788,summary,label1 value1 label2 value2 label3 value3 label4 value4 ,1980 1549 0.059498 0.173893 0.250765 +metricName789,gauge,label1 value1 label2 value2 ,1502 +metricName790,counter,label1 value1 ,3103 +metricName791,summary,label1 value1 label2 value2 label3 value3 label4 value4 ,1899 4175 0.249211 0.447760 0.945104 +metricName792,histogram,label1 value1 label2 value2 label3 value3 label4 value4 ,1131 7201 4738 2003 460 +metricName793,histogram,label1 value1 label2 value2 label3 value3 ,3411 13584 4093 4734 4757 +metricName794,summary,label1 value1 label2 value2 label3 value3 ,1659 1285 0.119420 0.795422 0.451519 +metricName795,summary,label1 value1 label2 value2 label3 value3 ,2825 2105 0.480896 0.759705 0.628462 +metricName796,gauge,label1 value1 ,4363 +metricName797,counter,label1 value1 label2 value2 label3 value3 label4 value4 ,1330 +metricName798,counter,label1 value1 label2 value2 label3 value3 label4 value4 ,4962 +metricName799,summary,label1 value1 label2 value2 label3 value3 label4 value4 ,2016 476 0.768483 0.145571 0.412227 +metricName800,summary,label1 value1 ,3447 4248 0.560837 0.755811 0.690956 +metricName801,summary,label1 value1 ,2347 127 0.782682 0.604027 0.514362 +metricName802,summary,label1 value1 label2 value2 label3 value3 label4 value4 ,594 4148 0.125061 0.896308 0.464698 +metricName803,gauge,label1 value1 label2 value2 ,3516 +metricName804,counter,label1 value1 label2 value2 ,895 +metricName805,counter,label1 value1 label2 value2 label3 value3 label4 value4 ,3779 +metricName806,gauge,label1 value1 label2 value2 ,4286 +metricName807,gauge,label1 value1 label2 value2 label3 value3 label4 value4 ,3321 +metricName808,histogram,label1 value1 label2 value2 label3 value3 label4 value4 ,916 9273 2303 2380 4590 +metricName809,gauge,label1 value1 label2 value2 ,2595 +metricName810,gauge,label1 value1 label2 value2 ,3417 +metricName811,summary,label1 value1 ,61 3927 0.304102 0.826071 0.505405 +metricName812,gauge,label1 value1 label2 value2 ,3282 +metricName813,gauge,label1 value1 label2 value2 label3 value3 label4 value4 ,1488 +metricName814,counter,label1 value1 label2 value2 label3 value3 label4 value4 ,189 +metricName815,gauge,label1 value1 label2 value2 label3 value3 label4 value4 ,2502 +metricName816,histogram,label1 value1 label2 value2 label3 value3 label4 value4 ,2006 9635 4291 3082 2262 +metricName817,histogram,label1 value1 ,1807 3193 1684 650 859 +metricName818,counter,label1 value1 label2 value2 label3 value3 ,615 +metricName819,summary,label1 value1 ,1998 924 0.424757 0.520057 0.109723 +metricName820,gauge,label1 value1 ,1058 +metricName821,counter,label1 value1 label2 value2 ,1563 +metricName822,histogram,label1 value1 label2 value2 ,223 6702 1286 4526 890 +metricName823,histogram,label1 value1 label2 value2 label3 value3 ,536 10009 4404 1388 4217 +metricName824,counter,label1 value1 label2 value2 label3 value3 ,2397 +metricName825,summary,label1 value1 label2 value2 ,2777 3774 0.462295 0.435239 0.091195 +metricName826,counter,label1 value1 label2 value2 ,4231 +metricName827,gauge,label1 value1 label2 value2 label3 value3 ,278 +metricName828,gauge,label1 value1 ,3438 +metricName829,histogram,label1 value1 label2 value2 label3 value3 ,3626 14128 4537 4744 4847 +metricName830,summary,label1 value1 label2 value2 label3 value3 label4 value4 ,1440 745 0.705787 0.946197 0.291889 +metricName831,histogram,label1 value1 ,2110 10537 4012 2765 3760 +metricName832,counter,label1 value1 label2 value2 label3 value3 ,2464 +metricName833,histogram,label1 value1 ,4273 5914 3803 383 1728 +metricName834,histogram,label1 value1 label2 value2 label3 value3 ,4713 8454 1928 3206 3320 +metricName835,histogram,label1 value1 label2 value2 ,143 6419 2905 2863 651 +metricName836,summary,label1 value1 label2 value2 label3 value3 ,1478 3744 0.494905 0.495914 0.111406 +metricName837,counter,label1 value1 label2 value2 ,2409 +metricName838,summary,label1 value1 label2 value2 ,587 4089 0.591614 0.988117 0.859716 +metricName839,histogram,label1 value1 label2 value2 label3 value3 ,1540 12458 4685 4307 3466 +metricName840,histogram,label1 value1 label2 value2 label3 value3 label4 value4 ,3603 7994 2427 1352 4215 +metricName841,gauge,label1 value1 label2 value2 ,3051 +metricName842,summary,label1 value1 ,1378 4853 0.777352 0.447042 0.840525 +metricName843,summary,label1 value1 label2 value2 ,974 1316 0.022137 0.454529 0.688424 +metricName844,histogram,label1 value1 label2 value2 label3 value3 ,4991 8109 4786 1313 2010 +metricName845,gauge,label1 value1 ,4028 +metricName846,counter,label1 value1 label2 value2 ,1972 +metricName847,histogram,label1 value1 label2 value2 label3 value3 label4 value4 ,2827 6402 2250 1124 3028 +metricName848,histogram,label1 value1 ,2380 7574 4215 845 2514 +metricName849,summary,label1 value1 label2 value2 label3 value3 ,1604 4883 0.785264 0.223850 0.399089 +metricName850,counter,label1 value1 ,1630 +metricName851,summary,label1 value1 ,1421 588 0.197159 0.217708 0.340092 +metricName852,summary,label1 value1 label2 value2 ,4069 998 0.587748 0.079795 0.783240 +metricName853,summary,label1 value1 ,4689 1989 0.880292 0.911341 0.679902 +metricName854,gauge,label1 value1 label2 value2 label3 value3 label4 value4 ,4194 +metricName855,summary,label1 value1 label2 value2 ,540 2962 0.013576 0.996686 0.378782 +metricName856,summary,label1 value1 ,2250 4169 0.651106 0.975078 0.094877 +metricName857,summary,label1 value1 ,644 15 0.208840 0.760177 0.218487 +metricName858,gauge,label1 value1 label2 value2 label3 value3 label4 value4 ,4292 +metricName859,counter,label1 value1 label2 value2 ,2642 +metricName860,histogram,label1 value1 ,3839 5640 3638 147 1855 +metricName861,gauge,label1 value1 label2 value2 label3 value3 label4 value4 ,2745 +metricName862,counter,label1 value1 ,993 +metricName863,summary,label1 value1 label2 value2 ,6 601 0.277755 0.376920 0.273423 +metricName864,gauge,label1 value1 ,123 +metricName865,counter,label1 value1 label2 value2 label3 value3 label4 value4 ,4577 +metricName866,counter,label1 value1 label2 value2 label3 value3 ,2150 +metricName867,summary,label1 value1 label2 value2 label3 value3 label4 value4 ,3728 4540 0.412997 0.118779 0.638407 +metricName868,summary,label1 value1 label2 value2 label3 value3 label4 value4 ,3221 3348 0.679763 0.831696 0.996484 +metricName869,histogram,label1 value1 label2 value2 ,1235 9252 3192 1639 4421 +metricName870,counter,label1 value1 label2 value2 label3 value3 label4 value4 ,3304 +metricName871,histogram,label1 value1 ,301 3404 506 2616 282 +metricName872,histogram,label1 value1 label2 value2 label3 value3 label4 value4 ,317 5001 836 135 4030 +metricName873,gauge,label1 value1 ,3433 +metricName874,counter,label1 value1 ,3667 +metricName875,summary,label1 value1 label2 value2 ,4904 3574 0.961890 0.364669 0.554477 +metricName876,counter,label1 value1 ,2695 +metricName877,gauge,label1 value1 label2 value2 label3 value3 label4 value4 ,4846 +metricName878,counter,label1 value1 label2 value2 label3 value3 ,893 +metricName879,histogram,label1 value1 label2 value2 label3 value3 ,609 7318 3495 368 3455 +metricName880,gauge,label1 value1 label2 value2 label3 value3 label4 value4 ,4564 +metricName881,gauge,label1 value1 label2 value2 ,305 +metricName882,counter,label1 value1 label2 value2 label3 value3 label4 value4 ,2327 +metricName883,histogram,label1 value1 label2 value2 label3 value3 label4 value4 ,1933 5959 706 287 4966 +metricName884,gauge,label1 value1 label2 value2 label3 value3 ,619 +metricName885,gauge,label1 value1 label2 value2 label3 value3 label4 value4 ,3324 +metricName886,gauge,label1 value1 ,4947 +metricName887,counter,label1 value1 ,3912 +metricName888,histogram,label1 value1 label2 value2 ,1856 7342 3382 2972 988 +metricName889,summary,label1 value1 label2 value2 label3 value3 ,1289 968 0.905582 0.128165 0.925093 +metricName890,counter,label1 value1 label2 value2 label3 value3 ,2413 +metricName891,histogram,label1 value1 label2 value2 label3 value3 ,4311 6247 3824 1433 990 +metricName892,histogram,label1 value1 ,4462 5073 167 510 4396 +metricName893,histogram,label1 value1 label2 value2 label3 value3 label4 value4 ,2574 3554 1863 419 1272 +metricName894,gauge,label1 value1 label2 value2 ,3566 +metricName895,gauge,label1 value1 label2 value2 label3 value3 ,3436 +metricName896,histogram,label1 value1 label2 value2 label3 value3 ,2343 7557 3635 3600 322 +metricName897,counter,label1 value1 label2 value2 ,380 +metricName898,histogram,label1 value1 label2 value2 label3 value3 ,2970 6158 555 2204 3399 +metricName899,histogram,label1 value1 label2 value2 label3 value3 label4 value4 ,2875 8968 858 3979 4131 +metricName900,histogram,label1 value1 ,3404 5000 2894 269 1837 +metricName901,histogram,label1 value1 label2 value2 ,2515 7998 4344 57 3597 +metricName902,summary,label1 value1 label2 value2 label3 value3 ,4136 4499 0.496007 0.759766 0.872289 +metricName903,summary,label1 value1 ,3721 347 0.358662 0.852896 0.644543 +metricName904,counter,label1 value1 label2 value2 ,1436 +metricName905,counter,label1 value1 ,1324 +metricName906,summary,label1 value1 ,1491 1999 0.222471 0.704088 0.055945 +metricName907,gauge,label1 value1 label2 value2 label3 value3 ,4423 +metricName908,gauge,label1 value1 label2 value2 label3 value3 ,27 +metricName909,gauge,label1 value1 label2 value2 label3 value3 ,1395 +metricName910,histogram,label1 value1 label2 value2 label3 value3 label4 value4 ,3642 8322 4897 78 3347 +metricName911,gauge,label1 value1 ,4338 +metricName912,summary,label1 value1 label2 value2 ,815 227 0.770518 0.948649 0.745967 +metricName913,histogram,label1 value1 label2 value2 label3 value3 ,4192 5196 363 2855 1978 +metricName914,histogram,label1 value1 label2 value2 label3 value3 label4 value4 ,4456 5709 4632 326 751 +metricName915,summary,label1 value1 label2 value2 label3 value3 ,2283 4720 0.347287 0.757361 0.919107 +metricName916,counter,label1 value1 label2 value2 label3 value3 ,3688 +metricName917,histogram,label1 value1 label2 value2 label3 value3 label4 value4 ,2610 7455 2934 3209 1312 +metricName918,counter,label1 value1 label2 value2 label3 value3 ,250 +metricName919,histogram,label1 value1 label2 value2 ,3597 7132 593 1590 4949 +metricName920,histogram,label1 value1 ,884 4736 7 1473 3256 +metricName921,counter,label1 value1 label2 value2 ,4664 +metricName922,summary,label1 value1 label2 value2 label3 value3 ,1033 1468 0.871352 0.356543 0.760775 +metricName923,histogram,label1 value1 label2 value2 ,2611 6010 1875 3261 874 +metricName924,gauge,label1 value1 ,4492 +metricName925,counter,label1 value1 label2 value2 label3 value3 label4 value4 ,4190 +metricName926,gauge,label1 value1 ,4880 +metricName927,gauge,label1 value1 label2 value2 label3 value3 ,4859 +metricName928,counter,label1 value1 label2 value2 label3 value3 ,1873 +metricName929,summary,label1 value1 ,3121 2715 0.432670 0.251218 0.423908 +metricName930,histogram,label1 value1 label2 value2 label3 value3 label4 value4 ,3189 5982 1101 3117 1764 +metricName931,gauge,label1 value1 label2 value2 ,2601 +metricName932,summary,label1 value1 label2 value2 label3 value3 ,679 2469 0.119152 0.906488 0.052478 +metricName933,histogram,label1 value1 label2 value2 ,1896 6195 2957 2635 603 +metricName934,counter,label1 value1 ,3191 +metricName935,counter,label1 value1 label2 value2 label3 value3 label4 value4 ,3612 +metricName936,histogram,label1 value1 label2 value2 ,4311 10670 3793 3673 3204 +metricName937,gauge,label1 value1 label2 value2 label3 value3 ,3556 +metricName938,counter,label1 value1 label2 value2 label3 value3 ,431 +metricName939,summary,label1 value1 ,645 2659 0.098739 0.557471 0.370596 +metricName940,counter,label1 value1 label2 value2 label3 value3 label4 value4 ,4536 +metricName941,counter,label1 value1 label2 value2 ,4142 +metricName942,gauge,label1 value1 ,1996 +metricName943,counter,label1 value1 label2 value2 label3 value3 ,4800 +metricName944,histogram,label1 value1 label2 value2 ,4951 5470 3433 1231 806 +metricName945,counter,label1 value1 label2 value2 label3 value3 label4 value4 ,4766 +metricName946,gauge,label1 value1 label2 value2 label3 value3 ,4971 +metricName947,counter,label1 value1 label2 value2 label3 value3 ,369 +metricName948,histogram,label1 value1 label2 value2 label3 value3 label4 value4 ,320 12309 2392 4959 4958 +metricName949,counter,label1 value1 label2 value2 ,4262 +metricName950,counter,label1 value1 ,4715 +metricName951,counter,label1 value1 ,1433 +metricName952,histogram,label1 value1 label2 value2 ,2397 6423 4385 1046 992 +metricName953,counter,label1 value1 label2 value2 label3 value3 ,4096 +metricName954,gauge,label1 value1 label2 value2 label3 value3 label4 value4 ,3902 +metricName955,gauge,label1 value1 label2 value2 label3 value3 label4 value4 ,2134 +metricName956,histogram,label1 value1 label2 value2 ,1068 10507 3242 4860 2405 +metricName957,gauge,label1 value1 ,2574 +metricName958,summary,label1 value1 label2 value2 label3 value3 label4 value4 ,125 3770 0.273701 0.691439 0.092723 +metricName959,counter,label1 value1 ,4438 +metricName960,summary,label1 value1 ,4890 2944 0.338768 0.869016 0.328033 +metricName961,gauge,label1 value1 label2 value2 ,2860 +metricName962,gauge,label1 value1 label2 value2 ,982 +metricName963,summary,label1 value1 label2 value2 ,325 3141 0.872958 0.088949 0.527637 +metricName964,gauge,label1 value1 label2 value2 label3 value3 label4 value4 ,1787 +metricName965,summary,label1 value1 ,2857 1584 0.665994 0.763545 0.009762 +metricName966,gauge,label1 value1 label2 value2 label3 value3 ,4169 +metricName967,summary,label1 value1 label2 value2 ,4725 373 0.645099 0.437369 0.215756 +metricName968,gauge,label1 value1 label2 value2 ,2485 +metricName969,counter,label1 value1 label2 value2 ,3042 +metricName970,gauge,label1 value1 ,2512 +metricName971,histogram,label1 value1 label2 value2 label3 value3 label4 value4 ,2422 3626 1574 1506 546 +metricName972,histogram,label1 value1 label2 value2 label3 value3 ,2043 9649 1951 4156 3542 +metricName973,histogram,label1 value1 ,1900 6419 2295 2020 2104 +metricName974,counter,label1 value1 ,3192 +metricName975,gauge,label1 value1 ,933 +metricName976,histogram,label1 value1 label2 value2 label3 value3 ,2992 6096 2716 2610 770 +metricName977,histogram,label1 value1 label2 value2 label3 value3 label4 value4 ,3281 8691 2609 3418 2664 +metricName978,counter,label1 value1 label2 value2 label3 value3 label4 value4 ,1910 +metricName979,summary,label1 value1 label2 value2 ,1165 3223 0.538176 0.504841 0.764983 +metricName980,summary,label1 value1 ,487 1834 0.265149 0.172008 0.026464 +metricName981,gauge,label1 value1 label2 value2 label3 value3 label4 value4 ,3388 +metricName982,gauge,label1 value1 label2 value2 label3 value3 label4 value4 ,4972 +metricName983,histogram,label1 value1 label2 value2 ,2092 12522 4396 3657 4469 +metricName984,summary,label1 value1 label2 value2 ,1214 1422 0.617172 0.908526 0.944291 +metricName985,summary,label1 value1 ,2517 3876 0.369381 0.692843 0.489140 +metricName986,histogram,label1 value1 label2 value2 ,2786 6079 2274 1295 2510 +metricName987,histogram,label1 value1 label2 value2 ,3551 9124 4195 1724 3205 +metricName988,counter,label1 value1 label2 value2 label3 value3 label4 value4 ,4123 +metricName989,gauge,label1 value1 label2 value2 ,3293 +metricName990,gauge,label1 value1 label2 value2 label3 value3 ,651 +metricName991,summary,label1 value1 label2 value2 ,4576 4657 0.339332 0.218863 0.338013 +metricName992,histogram,label1 value1 label2 value2 ,1856 10133 3570 2646 3917 +metricName993,counter,label1 value1 ,560 +metricName994,summary,label1 value1 label2 value2 label3 value3 label4 value4 ,3461 2055 0.809468 0.509033 0.334647 +metricName995,summary,label1 value1 label2 value2 label3 value3 ,3197 686 0.528430 0.713213 0.573994 +metricName996,histogram,label1 value1 label2 value2 label3 value3 ,3922 6951 3797 1792 1362 +metricName997,summary,label1 value1 label2 value2 label3 value3 label4 value4 ,2798 4754 0.796812 0.018875 0.035746 +metricName998,counter,label1 value1 label2 value2 label3 value3 label4 value4 ,239 +metricName999,counter,label1 value1 ,4690 diff --git a/test/otlploadgenerator/go.mod b/test/otlploadgenerator/go.mod new file mode 100644 index 00000000000..9904f821f58 --- /dev/null +++ b/test/otlploadgenerator/go.mod @@ -0,0 +1,12 @@ +module go.opentelemetry.io/collector/test/otlploadgenerator + +go 1.14 + +require ( + github.com/gogo/protobuf v1.3.1 // indirect + github.com/golang/protobuf v1.4.2 // indirect + github.com/grpc-ecosystem/grpc-gateway v1.14.7 // indirect + github.com/open-telemetry/opentelemetry-proto v0.4.0 + github.com/prometheus/prometheus v2.5.0+incompatible + google.golang.org/grpc v1.31.0 +) diff --git a/test/otlploadgenerator/go.sum b/test/otlploadgenerator/go.sum new file mode 100644 index 00000000000..af293aa3fba --- /dev/null +++ b/test/otlploadgenerator/go.sum @@ -0,0 +1,89 @@ +cloud.google.com/go v0.26.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= +cloud.google.com/go v0.34.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= +github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= +github.com/antihax/optional v1.0.0/go.mod h1:uupD/76wgC+ih3iEmQUL+0Ugr19nfwCT1kdvxnR2qWY= +github.com/census-instrumentation/opencensus-proto v0.2.1/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU= +github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw= +github.com/cncf/udpa/go v0.0.0-20191209042840-269d4d468f6f/go.mod h1:M8M6+tZqaGXZJjfX53e64911xZQV5JYwmTeXPW+k8Sc= +github.com/envoyproxy/go-control-plane v0.9.0/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= +github.com/envoyproxy/go-control-plane v0.9.1-0.20191026205805-5f8ba28d4473/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= +github.com/envoyproxy/go-control-plane v0.9.4/go.mod h1:6rpuAdCZL397s3pYoYcLgu1mIlRU8Am5FuJP05cCM98= +github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c= +github.com/ghodss/yaml v1.0.0/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04= +github.com/gogo/protobuf v1.3.1/go.mod h1:SlYgWuQ5SjCEi6WLHjHCa1yvBfUnHcTbrrZtXPKa29o= +github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b/go.mod h1:SBH7ygxi8pfUlaOkMMuAQtPIUF8ecWP5IEl/CR7VP2Q= +github.com/golang/mock v1.1.1/go.mod h1:oTYuIxOrZwtPieC+H1uAHpcLFnEyAGVDL/k47Jfbm0A= +github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= +github.com/golang/protobuf v1.3.2/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= +github.com/golang/protobuf v1.3.3/go.mod h1:vzj43D7+SQXF/4pzW/hwtAqwc6iTitCiVSaWz5lYuqw= +github.com/golang/protobuf v1.4.0-rc.1/go.mod h1:ceaxUfeHdC40wWswd/P6IGgMaK3YpKi5j83Wpe3EHw8= +github.com/golang/protobuf v1.4.0-rc.1.0.20200221234624-67d41d38c208/go.mod h1:xKAWHe0F5eneWXFV3EuXVDTCmh+JuBKY0li0aMyXATA= +github.com/golang/protobuf v1.4.0-rc.2/go.mod h1:LlEzMj4AhA7rCAGe4KMBDvJI+AwstrUpVNzEA03Pprs= +github.com/golang/protobuf v1.4.0-rc.4.0.20200313231945-b860323f09d0/go.mod h1:WU3c8KckQ9AFe+yFwt9sWVRKCVIyN9cPHBJSNnbL67w= +github.com/golang/protobuf v1.4.0/go.mod h1:jodUvKwWbYaEsadDk5Fwe5c77LiNKVO9IDvqG2KuDX0= +github.com/golang/protobuf v1.4.2 h1:+Z5KGCizgyZCbGh1KZqA0fcLLkwbsjIzS4aV2v7wJX0= +github.com/golang/protobuf v1.4.2/go.mod h1:oDoupMAO8OvCJWAcko0GGGIgR6R6ocIYbsSw735rRwI= +github.com/google/go-cmp v0.2.0/go.mod h1:oXzfMopK8JAjlY9xF4vHSVASa0yLyX7SntLO5aqRK0M= +github.com/google/go-cmp v0.3.0/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= +github.com/google/go-cmp v0.3.1/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= +github.com/google/go-cmp v0.4.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= +github.com/grpc-ecosystem/grpc-gateway v1.14.7 h1:Nk5kuHrnWUTf/0GL1a/vchH/om9Ap2/HnVna+jYZgTY= +github.com/grpc-ecosystem/grpc-gateway v1.14.7/go.mod h1:oYZKL012gGh6LMyg/xA7Q2yq6j8bu0wa+9w14EEthWU= +github.com/kisielk/errcheck v1.2.0/go.mod h1:/BMXB+zMLi60iA8Vv6Ksmxu/1UDYcXs4uQLJ+jE2L00= +github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck= +github.com/open-telemetry/opentelemetry-proto v0.4.0 h1:7EGs7QkdnR039zcQv71/wPLeeUUzqpH855VEWN4IHTE= +github.com/open-telemetry/opentelemetry-proto v0.4.0/go.mod h1:PMR5GI0F7BSpio+rBGFxNm6SLzg3FypDTcFuQZnO+F8= +github.com/prometheus/client_model v0.0.0-20190812154241-14fe0d1b01d4/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= +github.com/prometheus/prometheus v2.5.0+incompatible/go.mod h1:oAIUtOny2rjMX0OWN5vPR5/q/twIROJvdqnQKDdil/s= +github.com/rogpeppe/fastuuid v1.2.0/go.mod h1:jVj6XXZzXRy/MSR5jhDC/2q6DgLz+nrA6LYCDYWNEvQ= +golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= +golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= +golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= +golang.org/x/lint v0.0.0-20190227174305-5b3e6a55c961/go.mod h1:wehouNa3lNwaWXcvxsM5YxQ5yQlVC4a0KAMCusXpPoU= +golang.org/x/lint v0.0.0-20190313153728-d0100b6bd8b3/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= +golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/net v0.0.0-20190108225652-1e06a53dbb7e/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/net v0.0.0-20190213061140-3a22650c66bd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/net v0.0.0-20190311183353-d8887717615a/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= +golang.org/x/net v0.0.0-20191002035440-2ec189313ef0 h1:2mqDk8w/o6UmeUCu5Qiq2y7iMf6anbx+YA8d1JFoFrs= +golang.org/x/net v0.0.0-20191002035440-2ec189313ef0/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= +golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= +golang.org/x/oauth2 v0.0.0-20200107190931-bf48bf16ab8d/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= +golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/text v0.3.0 h1:g61tztE5qeGQ89tm6NTjjM9VPIm088od1l6aSorWRWg= +golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= +golang.org/x/tools v0.0.0-20181030221726-6c7e314b6563/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= +golang.org/x/tools v0.0.0-20190114222345-bf090417da8b/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= +golang.org/x/tools v0.0.0-20190226205152-f727befe758c/go.mod h1:9Yl7xja0Znq3iFh3HoIrodX9oNMXvdceNzlUR8zjMvY= +golang.org/x/tools v0.0.0-20190311212946-11955173bddd/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= +golang.org/x/tools v0.0.0-20190524140312-2c0ae7006135/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q= +golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= +google.golang.org/appengine v1.1.0/go.mod h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9YwlJXL52JkM= +google.golang.org/appengine v1.4.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= +google.golang.org/genproto v0.0.0-20180817151627-c66870c02cf8/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc= +google.golang.org/genproto v0.0.0-20190819201941-24fa4b261c55/go.mod h1:DMBHOl98Agz4BDEuKkezgsaosCRResVns1a3J2ZsMNc= +google.golang.org/genproto v0.0.0-20200513103714-09dca8ec2884 h1:fiNLklpBwWK1mth30Hlwk+fcdBmIALlgF5iy77O37Ig= +google.golang.org/genproto v0.0.0-20200513103714-09dca8ec2884/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= +google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c= +google.golang.org/grpc v1.23.0/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg= +google.golang.org/grpc v1.25.1/go.mod h1:c3i+UQWmh7LiEpx4sFZnkU36qjEYZ0imhYfXVyQciAY= +google.golang.org/grpc v1.27.0/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk= +google.golang.org/grpc v1.31.0 h1:T7P4R73V3SSDPhH7WW7ATbfViLtmamH0DKrP3f9AuDI= +google.golang.org/grpc v1.31.0/go.mod h1:N36X2cJ7JwdamYAgDz+s+rVMFjt3numwzf/HckM8pak= +google.golang.org/protobuf v0.0.0-20200109180630-ec00e32a8dfd/go.mod h1:DFci5gLYBciE7Vtevhsrf46CRTquxDuWsQurQQe4oz8= +google.golang.org/protobuf v0.0.0-20200221191635-4d8936d0db64/go.mod h1:kwYJMbMJ01Woi6D6+Kah6886xMZcty6N08ah7+eCXa0= +google.golang.org/protobuf v0.0.0-20200228230310-ab0ca4ff8a60/go.mod h1:cfTl7dwQJ+fmap5saPgwCLgHXTUD7jkjRqWcaiX5VyM= +google.golang.org/protobuf v1.20.1-0.20200309200217-e05f789c0967/go.mod h1:A+miEFZTKqfCUM6K7xSMQL9OKL/b6hQv+e19PK+JZNE= +google.golang.org/protobuf v1.21.0/go.mod h1:47Nbq4nVaFHyn7ilMalzfO3qCViNmqZ2kzikPIcrTAo= +google.golang.org/protobuf v1.23.0 h1:4MY060fB1DLGMB/7MBTLnwQUY6+F09GEiz6SsrNqyzM= +google.golang.org/protobuf v1.23.0/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU= +gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= +gopkg.in/yaml.v2 v2.2.3/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= +honnef.co/go/tools v0.0.0-20190102054323-c2f93a96b099/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= +honnef.co/go/tools v0.0.0-20190523083050-ea95bdfd59fc/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= diff --git a/test/otlploadgenerator/otlp.go b/test/otlploadgenerator/otlp.go new file mode 100644 index 00000000000..b057bb7af1a --- /dev/null +++ b/test/otlploadgenerator/otlp.go @@ -0,0 +1,132 @@ +package main + +import ( + "bufio" + "context" + "log" + "os" + "strings" + "time" + + service "github.com/open-telemetry/opentelemetry-proto/gen/go/collector/metrics/v1" + metrics "github.com/open-telemetry/opentelemetry-proto/gen/go/metrics/v1" + "google.golang.org/grpc" +) + +type sender struct { + client service.MetricsServiceClient +} + +var ( + path = "./data.txt" // data file path + item = 1000 // total number of metrics / lines in output file + metric = "metricName" // base metricName. output file has only unique metricName with a number suffix + gauge = "gauge" + counter = "counter" + histogram = "histogram" + summary = "summary" + types = []string{ // types of metrics generatedq + counter, + gauge, + histogram, + summary, + } + labels = []string{ // each metric will have from 1 to 4 sets of labels + "label1 value1", + "label2 value2", + "label3 value3", + "label4 value4", + } + delimeter = "," // separate name, type, labels and metric value + space = " " // separate a set of label values or metric values + valueBound = 5000 // metric values are [0, valueBound) + bounds = []float64{0.01, 0.5, 0.99} // fixed quantile/buckets + + endpoint = "localhost:55680" + waitTime = 5 * time.Second // wait time between two sends +) + +func main() { + // Writes metrics in the following format to a text file: + // name, type, label1 labelvalue1 , value1 value2 value3 value4 value5 + // gauge and counter has only one value + generateData() + // wait for collector to start + time.Sleep(time.Second * 10) + // connect to the Collector + clientConn, err := grpc.Dial(endpoint, grpc.WithInsecure()) + if err != nil { + panic(err) + } + client := service.NewMetricsServiceClient(clientConn) + s := &sender{ + client, + } + // read from file and send metrics + s.createAndSendMetricsFromFile() +} + +// createAndSendMetricsFromFile reads a text file, parse each line to build the corresponding otlp metric, then send the +// metric to the Collector +func (s *sender) createAndSendMetricsFromFile() { + file, err := os.Open(path) + if err != nil { + log.Fatal(err) + } + defer file.Close() + + scanner := bufio.NewScanner(file) + if err := scanner.Err(); err != nil { + log.Fatal(err) + } + // parse each line and build metric + for scanner.Scan() { + line := strings.Trim(scanner.Text(), space) + params := strings.Split(line, delimeter) + + // get metric name and labels + name := strings.Trim(params[0], space) + labelSet := getLabels(strings.Split(strings.Trim(params[2], space), space)...) + + mTpye := params[1] + values := params[3] + var m *metrics.Metric + // build metrics + switch mTpye { + case gauge, counter: + m = buildScalarMetric(name, labelSet, parseNumber(values), intComb) + case histogram: + m = buildHistogramMetric(name, labelSet, parseuUInt64Slice(values)) + case summary: + m = buildSummaryMetric(name, labelSet, parseuUInt64Slice(values)) + default: + log.Println("Invalid metric type") + continue + } + log.Println(m.String()) + s.sendMetric(m) + } +} + +func (s *sender) sendMetric(m *metrics.Metric) { + request := service.ExportMetricsServiceRequest{ + + ResourceMetrics: []*metrics.ResourceMetrics{ + { + InstrumentationLibraryMetrics: []*metrics.InstrumentationLibraryMetrics{ + { + Metrics: []*metrics.Metric{ + m, + }, + }, + }, + }, + }, + } + ctx, _ := context.WithTimeout(context.Background(), 30*time.Second) + _, err := s.client.Export(ctx, &request) + time.Sleep(waitTime) + if err != nil { + log.Fatal(err) + } +} diff --git a/test/otlploadgenerator/util.go b/test/otlploadgenerator/util.go new file mode 100644 index 00000000000..eaf472f417c --- /dev/null +++ b/test/otlploadgenerator/util.go @@ -0,0 +1,219 @@ +package main + +import ( + "strconv" + "strings" + "time" + + common "github.com/open-telemetry/opentelemetry-proto/gen/go/common/v1" + metrics "github.com/open-telemetry/opentelemetry-proto/gen/go/metrics/v1" + otlp "github.com/open-telemetry/opentelemetry-proto/gen/go/metrics/v1" +) + +type combination struct { + ty otlp.MetricDescriptor_Type + temp otlp.MetricDescriptor_Temporality +} + +var ( + testHeaders = map[string]string{"headerOne": "value1"} + + typeInt64 = "INT64" + typeMonotonicInt64 = "MONOTONIC_INT64" + typeMonotonicDouble = "MONOTONIC_DOUBLE" + typeHistogram = "HISTOGRAM" + typeSummary = "SUMMARY" + + label11 = "test_label11" + value11 = "test_value11" + label12 = "test_label12" + value12 = "test_value12" + label21 = "test_label21" + value21 = "test_value21" + label22 = "test_label22" + value22 = "test_value22" + label31 = "test_label31" + value31 = "test_value31" + label32 = "test_label32" + value32 = "test_value32" + dirty1 = "%" + dirty2 = "?" + + intVal1 int64 = 1 + intVal2 int64 = 2 + floatVal1 = 1.0 + floatVal2 = 2.0 + + lbs1 = getLabels(label11, value11, label12, value12) + lbs2 = getLabels(label21, value21, label22, value22) + lbs1Dirty = getLabels(label11+dirty1, value11, dirty2+label12, value12) + + lb1Sig = "-" + label11 + "-" + value11 + "-" + label12 + "-" + value12 + lb2Sig = "-" + label21 + "-" + value21 + "-" + label22 + "-" + value22 + ns1 = "test_ns" + name1 = "valid_single_int_point" + + monotonicInt64Comb = 0 + monotonicDoubleComb = 1 + intComb = 4 + histogramComb = 2 + summaryComb = 3 + validCombinations = []combination{ + {otlp.MetricDescriptor_MONOTONIC_INT64, otlp.MetricDescriptor_CUMULATIVE}, + {otlp.MetricDescriptor_MONOTONIC_DOUBLE, otlp.MetricDescriptor_CUMULATIVE}, + {otlp.MetricDescriptor_HISTOGRAM, otlp.MetricDescriptor_CUMULATIVE}, + {otlp.MetricDescriptor_SUMMARY, otlp.MetricDescriptor_CUMULATIVE}, + {otlp.MetricDescriptor_INT64, otlp.MetricDescriptor_DELTA}, + {otlp.MetricDescriptor_DOUBLE, otlp.MetricDescriptor_DELTA}, + {otlp.MetricDescriptor_INT64, otlp.MetricDescriptor_INSTANTANEOUS}, + {otlp.MetricDescriptor_DOUBLE, otlp.MetricDescriptor_INSTANTANEOUS}, + {otlp.MetricDescriptor_INT64, otlp.MetricDescriptor_CUMULATIVE}, + {otlp.MetricDescriptor_DOUBLE, otlp.MetricDescriptor_CUMULATIVE}, + } + invalidCombinations = []combination{ + {otlp.MetricDescriptor_MONOTONIC_INT64, otlp.MetricDescriptor_DELTA}, + {otlp.MetricDescriptor_MONOTONIC_DOUBLE, otlp.MetricDescriptor_DELTA}, + {otlp.MetricDescriptor_HISTOGRAM, otlp.MetricDescriptor_DELTA}, + {otlp.MetricDescriptor_SUMMARY, otlp.MetricDescriptor_DELTA}, + {otlp.MetricDescriptor_MONOTONIC_INT64, otlp.MetricDescriptor_DELTA}, + {otlp.MetricDescriptor_MONOTONIC_DOUBLE, otlp.MetricDescriptor_DELTA}, + {otlp.MetricDescriptor_HISTOGRAM, otlp.MetricDescriptor_DELTA}, + {otlp.MetricDescriptor_SUMMARY, otlp.MetricDescriptor_DELTA}, + {ty: otlp.MetricDescriptor_INVALID_TYPE}, + {temp: otlp.MetricDescriptor_INVALID_TEMPORALITY}, + {}, + } +) + +// OTLP metrics +// labels must come in pairs +func getLabels(labels ...string) []*common.StringKeyValue { + var set []*common.StringKeyValue + for i := 0; i < len(labels); i += 2 { + set = append(set, &common.StringKeyValue{ + Key: labels[i], + Value: labels[i+1], + }) + } + return set +} + +func getDescriptor(name string, i int, comb []combination) *otlp.MetricDescriptor { + return &otlp.MetricDescriptor{ + Name: name, + Description: "", + Unit: "", + Type: comb[i].ty, + Temporality: comb[i].temp, + } +} + +func getIntDataPoint(labels []*common.StringKeyValue, value int64, ts uint64) *otlp.Int64DataPoint { + return &otlp.Int64DataPoint{ + Labels: labels, + StartTimeUnixNano: 0, + TimeUnixNano: ts, + Value: value, + } +} + +func getDoubleDataPoint(labels []*common.StringKeyValue, value float64, ts uint64) *otlp.DoubleDataPoint { + return &otlp.DoubleDataPoint{ + Labels: labels, + StartTimeUnixNano: 0, + TimeUnixNano: ts, + Value: value, + } +} + +func getHistogramDataPoint(labels []*common.StringKeyValue, ts uint64, sum float64, count uint64, bounds []float64, buckets []uint64) *otlp.HistogramDataPoint { + bks := []*otlp.HistogramDataPoint_Bucket{} + for _, c := range buckets { + bks = append(bks, &otlp.HistogramDataPoint_Bucket{ + Count: c, + Exemplar: nil, + }) + } + return &otlp.HistogramDataPoint{ + Labels: labels, + StartTimeUnixNano: 0, + TimeUnixNano: ts, + Count: count, + Sum: sum, + Buckets: bks, + ExplicitBounds: bounds, + } +} + +func getSummaryDataPoint(labels []*common.StringKeyValue, ts uint64, sum float64, count uint64, pcts []float64, values []float64) *otlp.SummaryDataPoint { + pcs := []*otlp.SummaryDataPoint_ValueAtPercentile{} + for i, v := range values { + pcs = append(pcs, &otlp.SummaryDataPoint_ValueAtPercentile{ + Percentile: pcts[i], + Value: v, + }) + } + return &otlp.SummaryDataPoint{ + Labels: labels, + StartTimeUnixNano: 0, + TimeUnixNano: ts, + Count: count, + Sum: sum, + PercentileValues: pcs, + } +} +func buildScalarMetric(name string, labels []*common.StringKeyValue, val float64, kind int) *metrics.Metric { + return &metrics.Metric{ + MetricDescriptor: getDescriptor(name, kind, validCombinations), + Int64DataPoints: []*metrics.Int64DataPoint{ + getIntDataPoint(labels, int64(val), uint64(time.Now().UnixNano())), + }, + } +} + +func buildHistogramMetric(name string, labels []*common.StringKeyValue, val []uint64) *metrics.Metric { + + sum := float64(val[0]) + count := val[1] + buckets := val[2:] + + return &metrics.Metric{ + MetricDescriptor: getDescriptor(name, histogramComb, validCombinations), + HistogramDataPoints: []*metrics.HistogramDataPoint{ + getHistogramDataPoint(labels, uint64(time.Now().UnixNano()), sum, count, bounds, buckets), + }, + } +} +func buildSummaryMetric(name string, labels []*common.StringKeyValue, val []uint64) *metrics.Metric { + sum := float64(val[0]) + count := val[1] + pcts := make([]float64, len(bounds), len(bounds)) + values := make([]float64, len(bounds), len(bounds)) + for i, bound := range bounds { + pcts[i] = float64(bound) + values[i] = float64(val[2+i]) + } + return &metrics.Metric{ + MetricDescriptor: getDescriptor(name, summaryComb, validCombinations), + SummaryDataPoints: []*metrics.SummaryDataPoint{ + getSummaryDataPoint(labels, uint64(time.Now().UnixNano()), sum, count, pcts, values), + }, + } +} + +func parseNumber(str string) float64 { + str = strings.Replace(str, "[", space, -1) + str = strings.Replace(str, "]", space, -1) + str = strings.Trim(str, space) + num, _ := strconv.ParseFloat(str, 64) + return num +} +func parseuUInt64Slice(str string) []uint64 { + arr := strings.Split(strings.Trim(str, space), space) + result := make([]uint64, len(arr), len(arr)) + for i, numStr := range arr { + num, _ := strconv.Atoi(numStr) + result[i] = uint64(num) + } + return result +}