* Add component name as the metric prefix for opencensus exporter
Read from all meters instead of just he default one
Add component name as the metric prefix for opencensus exporter
* Update codegen
* Add domain as metric prefix
* Use path.Join to simply the code
* Update OpenCensus to include #1196.
* Extend OpenCensus to track per-Resource stats.
* Add generic ResourceView mechanics, part 1. TODO: wire newFactory, tests
* Move factory creation to where it can be customized per-backend
* Integrate opencensus export with Resource-based exporters
* Add stackdriver support for resource views
* address feedbacks
* add test cases
* make KnativeRevision a map
* Update go modules to point to latest opencensus which includes `view.Meter`.
* Add support for Resources to Prometheus Exporter.
This involved copying/improving much of the contrib prometheus exporter.
* add resource_view tests and fix minor issues
* add recorder tests for meter
* Update resource_view_test with an e2e export test.
* Fix prometheus e2e resource_view_test.
Found a fun circular lock.
Found a fun double-registration in metricproducer/Meter.
Found some unnecessary extra code.
Fixed prometheus string sanitization.
Removed a layer of Prometheus wrapping which made debugging more challenging.
* Add test for standard view exports and non-resourced views to e2e test.
* Add UnregisterResourceView to fix tests
* Add OpenCensus e2e resource export test.
Still a little flaky, so work around that with "<=".
* Fix tests for OpenCensus export.
* Fix flakiness / timing issues in OpenCensus exporter e2e test.
* Update to latest ocagent to fix `Resources` bug.
* Don't swallow errors from stackdriver init.
* Get Stackdriver export mostly working in e2e tests
Tests still fail because stackdriver converts custom metrics to a namespaced format and seems to lose Resource information.
* Add support for Stackdriver resource export.
* ./hack/update-codegen.sh
* Fix data race with graceful shutdown.
* Fix issues noticed by @vagababov
* Address mattmoor-bot comments.
* Remove MonitoredResource and apply suggestions from yanweiguo
* More cleanup to stackdriver_exporter_test.go
* Update tests (particularly config_test.go) for Stackdriver recorder changes which sometimes record with additional resources.
* Avoid setting two `view.WithRecorder` options on record
* Add stackdriver tests
* Address comments
* Switch Prometheus port due to possible conflict in test env
* Fix missing :=
* FIx data races around *view.Data shared across Meters.
Cleanup resource_view_test.
* Remove unneeded monitored_resources.go
* Use sync.WaitGroup to avoid data races on closing channel.
* Sort the map for ResourceAsString
* Apply lint and vagababov changes.
* Fix typos
* refactor ResourceAsString
* Update stackdriver exporter version
* Update metrics/resource_view_test.go
Remove accidental paste
* Fix go.sum
* Address yanweiguo comments on comments
* Fix autogen/go mod
* Handling resource extraction when custom metrics are allowed
* Add tests for AllowCustomMetrics set to true
* Address vagababov and yanweiguo comments.
Signed-off-by: Evan Anderson <evan.k.anderson@gmail.com>
* address comments
* Renaming
* Reduce some condition nesting
* go fmt
* Sleep for 1ms to allow metrics being sent (#9)
* Address yanweiguo comments
Co-authored-by: JJ Zeng <jjzeng@google.com>
Co-authored-by: jjzeng-seattle <56568376+jjzeng-seattle@users.noreply.github.com>
* do not record for empty metric config
* Revert "do not record for empty metric config"
This reverts commit 539a5e4dbb.
* delete
* log once
* remove space
* do not record for empty metric config
* Revert "do not record for empty metric config"
This reverts commit 539a5e4dbb.
* add a comment
* fix typo
* fix tests
* revert
* revert tests
* revert
* fix conflicts
* one more test file
* Make updating metricsConfig and updating metricsExporter atomic
This requires doing anything with a kubeclient before obtaining the
metricsMux lock.
* Address PR
* Revert "Add support for client TLS to pkg/metrics (#1045)"
This reverts commit 945b556708.
* Roll forward "Add support for client TLS to pkg/metrics (#1045)"
Adds support for client TLS certs for opencensus export
* Switch sharedmain to only pass a getter rather than an all-namespace lister.
* Add a TODO about using a cached copy if this generates undue load
* Update deps per build failure.
* Refactor per @anniefu suggestion
* Document the plan for metrics
* Update with issue links
* Update with other @mattmoor comments.
* Address feedback from @anniefu
* Update export address since `localhost` won't work for a DaemonSet.
* Add an explicit action item to migrate Prometheus
* Fix possible (ambiguous) link vs checkbox.
* Fix typo in metrics/README.md
* Add support for client TLS to pkg/metrics
* Address comments from @vagababov and @anniefu
* Finish removing Resource code
* Update name to be shorter and not require a double migration.
* Add tests for opencensus exporting with TLS
Currently the function aptly named CheckLastValueData does not only check that, but
also checks that it's the _single_ entry, which is not necessarily true,
especially if run as part of a bigger test suite.
So change it to actually verify the last row and remove the check for the singular entry.
Given that all the tests pass, this probably was not intented anyway.
* Add RecordN method to permit recording of N measurements simultaneously.
In serving we have many places where we try to record several metrics at the same time.
Besides very repetetive code, this also brings inefficiences, since metrics code has to do _some_ work
for every call, which is completely avoidable.
This way we can record N measurements with one hit.
* tests and nits
* review items per discussion with Evan:
- remove ros
- make measurements ...
* review
* Add support for OpenCensus Agent as a destination for Knative metrics.
* Update with comments from @mattmoor and @anniefu
* Remember to register exporter.
Fix tests.
* Fix naming per discussion with @anniefu
* Document the plan for metrics
* Update with issue links
* Update with other @mattmoor comments.
* Address feedback from @anniefu
* Update export address since `localhost` won't work for a DaemonSet.
* Add an explicit action item to migrate Prometheus
* Fix possible (ambiguous) link vs checkbox.