Commit Graph

88 Commits

Author SHA1 Message Date
Bogdan Drutu c4134ba6f3
Add the StartFunc/ShutdownFunc to component directly (#4803)
Signed-off-by: Bogdan Drutu <bogdandrutu@gmail.com>
2022-02-18 11:29:49 -08:00
Sean Marciniak d5656d6bb2
Updating methods to reflect the contribution guide's recommendations (#4865) 2022-02-18 11:12:40 -08:00
Bogdan Drutu 0ef0a9ce7b
Use directly the consumer helper funcs in the other helpers packages. (#4719)
Try to understand if the Component helper is necessary, or only having the helper funcs is enough.

Signed-off-by: Bogdan Drutu <bogdandrutu@gmail.com>
2022-01-26 10:59:26 -08:00
Anthony Mirabella e080cae46f
Enable configuring telemetry through service config file (#4069)
* consolidate flags for configuring telemetry

Signed-off-by: Anthony J Mirabella <a9@aneurysm9.com>

* Enable configuring metrics via service config

Signed-off-by: Anthony J Mirabella <a9@aneurysm9.com>

* Make components take MetricsLevel from TelemetrySettings

Signed-off-by: Anthony J Mirabella <a9@aneurysm9.com>

* Fix lint errors

Signed-off-by: Anthony J Mirabella <a9@aneurysm9.com>

* Remove configuration for metrics prefix and adding instance ID

Signed-off-by: Anthony J Mirabella <a9@aneurysm9.com>

* Make entire Collector available to telemetry initialization, use it to set metrics prefix to buildInfo.Command

Signed-off-by: Anthony J Mirabella <a9@aneurysm9.com>

* fix metrics prefix tests

Signed-off-by: Anthony J Mirabella <a9@aneurysm9.com>

* Fix lint errors

Signed-off-by: Anthony J Mirabella <a9@aneurysm9.com>

* config/telemetry: parseLevel() no longer needs to be exported

Signed-off-by: Anthony J Mirabella <a9@aneurysm9.com>

* config/telemetry: remove intanceID and prefix flags

Signed-off-by: Anthony J Mirabella <a9@aneurysm9.com>

* Apply PR feedback

Signed-off-by: Anthony J Mirabella <a9@aneurysm9.com>

* address PR feedback

Signed-off-by: Anthony J Mirabella <a9@aneurysm9.com>

* Avoid linter complaining about use of deprecated functions

Signed-off-by: Anthony J Mirabella <a9@aneurysm9.com>

* Update CHANGELOG

Signed-off-by: Anthony J Mirabella <a9@aneurysm9.com>
2021-12-16 10:29:28 -08:00
Bogdan Drutu 964c85766e
Change queue metrics to use opencensus metrics instead of stats, close to otel-go (#4220)
* Change queue metrics to use opencensus metrics instead of stats, close to otel

Signed-off-by: Bogdan Drutu <bogdandrutu@gmail.com>

* Apply suggestions from code review

Co-authored-by: alrex <alrex.boten@gmail.com>

* Fix lint errors

Signed-off-by: Bogdan Drutu <bogdandrutu@gmail.com>

Co-authored-by: alrex <alrex.boten@gmail.com>
2021-10-20 13:18:33 -07:00
José Carlos Chávez 9d3a8a4608
Adds vanity import check (#4180)
* chore: adds porto and fixes vanity imports.

* chore: fixes target overriding.

* chore: fixes install of porto.

* chore: includes porto as a tool.

* chore: upgrades porto to check internals.

* chore: rebase and update vanity import.

* chore: removes unnecessary space.

* chore: rollsback vanity import in generated files.
2021-10-12 13:47:36 -07:00
Przemek Maciolek 6edb5033de
Move Persistent Queue to internal (#4116)
This addresses one of the items raised in #4025 (move persistent_queue to internal). The overall refactor is broken into three parts:

* **Part 2**: actual moving Persistent Queue into exporthelper/internal (this also requires exporting `internal.RequestUnmarshaller` and `internal.PersistentRequest`) 👈    (this PR)

Link to tracking Issue: #4025

Testing: Unit tests updated, manual tests to follow
2021-09-29 12:25:17 -04:00
Przemek Maciolek eca1ba7385
Persistent storage in queued_retry, backed by file storage extension (#3274)
Persistent queue implementation within queued_retry, aimed at being compatible with Jager's [BoundedQueue](https://github.com/jaegertracing/jaeger/blob/master/pkg/queue/bounded_queue.go) interface (providing a simple replacement) and backed by [file storage extension](https://github.com/open-telemetry/opentelemetry-collector-contrib/tree/main/extension/storage/filestorage) for storing WAL.

Currently, to run the persistent queue, OpenTelemetry Collector Contrib with `enable_unstable` build tag is required.

**Link to tracking Issue:** #2285 

[Design doc](https://docs.google.com/document/d/1Y4vNthCGdYI61ezeAzL5dXWgiZ73y9eSjIDitk3zXsU/edit#)

**Testing:** Unit Tests and manual testing, more to come

**Documentation:** README.md updated, including an example
2021-09-10 13:56:44 -04:00
Bogdan Drutu 55c49333f7
Remove exporterhelper support for ResourceToTelemetry, moved to contrib (#3902)
Signed-off-by: Bogdan Drutu <bogdandrutu@gmail.com>
2021-08-26 15:50:20 -07:00
Bogdan Drutu bb9569f896
Change obsreport exporter to accept ExporterCreateSettings (#3789)
Signed-off-by: Bogdan Drutu <bogdandrutu@gmail.com>
2021-08-09 08:32:35 -07:00
Dmitrii Anoshin dc7899b402
Add telemetry for dropped data due to exporter sending queue overflow (#3328)
* Add telemetry for dropped data due to exporter sending queue overflow

This change adds internal metrics for dropped spans, metric points and log records when exporter sending queue is full:
- exporter/enqueue_failed_metric_points
- exporter/enqueue_failed_spans
- exporter/enqueue_failed_log_records

* Make report*EnqueueFailure methods private

By moving them to the package where they are being used. It requires some code duplication
2021-06-03 08:58:06 -07:00
Bogdan Drutu 52abb90fa1
Use consumerhelper for exporterhelper, add WithCapabilities (#3186)
Signed-off-by: Bogdan Drutu <bogdandrutu@gmail.com>
2021-05-14 14:25:18 -07:00
Pavan Krishna 51281a7192
fixed typo in a doc string and added missing configuration in README (#3129) 2021-05-10 09:24:29 -07:00
Bogdan Drutu e54cbb44df
Use config.ID for Exporters config (#3084)
Signed-off-by: Bogdan Drutu <bogdandrutu@gmail.com>
2021-05-04 08:09:37 -07:00
Bogdan Drutu 64fe8f0d03
Follow golang pattern and name public function types with Func suffix (#2880)
Signed-off-by: Bogdan Drutu <bogdandrutu@gmail.com>
2021-04-13 12:23:53 -07:00
Dmitrii Anoshin 4aeef524e8
Report metric about current size of the exporter retry queue (#2858)
This commit adds observability to queue_retry exporter helper. It adds the first metric "queue_length" that indicates current size of the queue per exporter. The metrics is updated every second.

This is the first commit to address the issue https://github.com/open-telemetry/opentelemetry-collector/issues/2434
2021-04-01 18:26:23 -07:00
Bogdan Drutu e7c74eb2fd
Move configmodels to config (#2808)
Signed-off-by: Bogdan Drutu <bogdandrutu@gmail.com>
2021-03-26 12:14:35 -07:00
Bogdan Drutu 4ae0fc1149
Use Option pattern for componenthelper (#2778)
Signed-off-by: Bogdan Drutu <bogdandrutu@gmail.com>
2021-03-24 13:43:00 -07:00
Anthony Mirabella a65a5a6978
Tidy up `consumer/consumererror` package. (#2768)
* Tidy up `consumer/consumererror` package.

* Updated docblocks for grammar and consistency
* Added `IsPartial()` predicate to match `IsPermanent()`
* Ensured tests for `PartialError` test the public interface

Remove `PartialError` and replace with individual signal error types

Refactor consumererror signal extraction to simplify exporterhelper request interface

* Rename consumererror signal error types to align with rest of codebase

* Rename `onPartialError` to `onError` in `exporterhelper.request` interface

* Provide conversion methods to consumererror signal error types.

This moves the accessors for signal data to methods on the individual error types
and provides As<Signal>() package functions that behave as targeted versions of
the errors.As() function.

* Avoid unnecessary allocation, fixup docs
2021-03-23 16:35:23 -07:00
Bogdan Drutu 03904de3dd
Remove the number of items from returned values in Push funcs (#2684)
Even in code for metrics we did not have a consistent implementation,
also most important thing was not used anymore in observability helper.

Signed-off-by: Bogdan Drutu <bogdandrutu@gmail.com>
2021-03-12 17:25:50 -08:00
Bogdan Drutu 815547c607
Small nit fix in exporterhelper, move private var to test (#2586)
Signed-off-by: Bogdan Drutu <bogdandrutu@gmail.com>
2021-03-05 11:02:59 -08:00
Bogdan Drutu 511cdaa8fa
Improve go readability for default settings func names (#2227)
Signed-off-by: Bogdan Drutu <bogdandrutu@gmail.com>
2020-11-30 18:27:23 -05:00
Bogdan Drutu 45ea954311
Add more trace annotations, so zpages are more useful to determine failures (#2206)
Signed-off-by: Bogdan Drutu <bogdandrutu@gmail.com>
2020-11-23 14:23:24 -08:00
Bogdan Drutu 8ceddba7ea
Reduce duplicate code in components helper (#2186)
Add componenthelper package to help building components like Processors, Exporters.

Signed-off-by: Bogdan Drutu <bogdandrutu@gmail.com>
2020-11-20 07:17:46 -08:00
Rayhan Hossain (Mukla.C) 5f60c7232a
[exporter-helper] [resource_to_label_conversion] add helper function and expose exporter settings (#2060)
* add helper function to convert resource attributes to labels

Signed-off-by: Rayhan Hossain <hossain.rayhan@outlook.com>

* add unit tests to improve coverage

Signed-off-by: Rayhan Hossain <hossain.rayhan@outlook.com>

* get a copy of incoming metrics and modify it

Signed-off-by: Rayhan Hossain <hossain.rayhan@outlook.com>

* update unit tests to make sure incoming pdata.Metrics are unchanged

Signed-off-by: Rayhan Hossain <hossain.rayhan@outlook.com>

* expose Resource_To_Label seeting option for all exporters

Signed-off-by: Rayhan Hossain <hossain.rayhan@outlook.com>

* use the helper function directly instead of seeting up a consumer

* update README and address PR feedbacks

Signed-off-by: Rayhan Hossain <hossain.rayhan@outlook.com>

* add unit tests to improve coverage

Signed-off-by: Rayhan Hossain <hossain.rayhan@outlook.com>

* PR feedback: rename ResourceToLabel to ResourceToTelemetry

Signed-off-by: Rayhan Hossain <hossain.rayhan@outlook.com>

* refactoring: extract common code and create a simple func

Signed-off-by: Rayhan Hossain <hossain.rayhan@outlook.com>
2020-11-09 07:06:19 -08:00
Tigran Najaryan eec44dfa80
Improve diagnostic logging for exporters (#2020)
This change introduces diagnostic debug, info and error logging in
queued_retry exporter helpers. The logging will be applied to all
exporters which use the helpers.

All logging is heavily sampled to avoid flooding the logs. We will
likely need to revise the contributing guide here to clarify that
such sampled logging is allowed:
https://github.com/open-telemetry/opentelemetry-collector/blob/master/CONTRIBUTING.md#logging

We will likely also want to fix the logging for batch processor
which currently outputs not very user friendly messages on failures.

Resolves https://github.com/open-telemetry/opentelemetry-collector/issues/2013

Sample output with otlphttp exporter and destination unavailable:

```
{"level":"info","ts":1603846135.431853,"caller":"service/service.go:252","msg":"Everything is ready. Begin running and processing data."}
{"level":"info","ts":1603846140.7589068,"caller":"exporterhelper/queued_retry.go:250","msg":"Exporting failed. Will retry the request after interval.","component_kind":"exporter","component_type":"otlphttp","component_name":"otlphttp","error":"failed to make an HTTP request: Post \"http://localhost:1234\": dial tcp [::1]🔢 connect: connection refused","interval":"3.571319363s"}
{"level":"info","ts":1603846151.5628319,"caller":"exporterhelper/queued_retry.go:250","msg":"Exporting failed. Will retry the request after interval.","component_kind":"exporter","component_type":"otlphttp","component_name":"otlphttp","error":"failed to make an HTTP request: Post \"http://localhost:1234\": dial tcp [::1]🔢 connect: connection refused","interval":"13.463090615s"}
{"level":"error","ts":1603846153.3259032,"caller":"exporterhelper/queued_retry.go:238","msg":"Exporting failed. No more retries left. Dropping data.","component_kind":"exporter","component_type":"otlphttp","component_name":"otlphttp","error":"max elapsed time expired failed to make an HTTP request: Post \"http://localhost:1234\": dial tcp [::1]🔢 connect: connection refused","dropped_items":10,"stacktrace":"go.opentelemetry.io/collector/exporter/exporterhelper.(*retrySender).send\n\t/Users/tnajaryan/work/repos/collector-core/exporter/exporterhelper/queued_retry.go:238\ngo.opentelemetry.io/collector/exporter/exporterhelper.(*metricsSenderWithObservability).send\n\t/Users/tnajaryan/work/repos/collector-core/exporter/exporterhelper/metricshelper.go:119\ngo.opentelemetry.io/collector/exporter/exporterhelper.(*queuedRetrySender).start.func1\n\t/Users/tnajaryan/work/repos/collector-core/exporter/exporterhelper/queued_retry.go:129\ngithub.com/jaegertracing/jaeger/pkg/queue.(*BoundedQueue).StartConsumers.func1\n\t/Users/tnajaryan/.go/pkg/mod/github.com/jaegertracing/jaeger@v1.20.0/pkg/queue/bounded_queue.go:77"}
{"level":"info","ts":1603846162.86763,"caller":"exporterhelper/queued_retry.go:250","msg":"Exporting failed. Will retry the request after interval.","component_kind":"exporter","component_type":"otlphttp","component_name":"otlphttp","error":"failed to make an HTTP request: Post \"http://localhost:1234\": dial tcp [::1]🔢 connect: connection refused","interval":"7.729392865s"}
{"level":"error","ts":1603846163.918241,"caller":"exporterhelper/queued_retry.go:238","msg":"Exporting failed. No more retries left. Dropping data.","component_kind":"exporter","component_type":"otlphttp","component_name":"otlphttp","error":"max elapsed time expired failed to make an HTTP request: Post \"http://localhost:1234\": dial tcp [::1]🔢 connect: connection refused","dropped_items":10,"stacktrace":"go.opentelemetry.io/collector/exporter/exporterhelper.(*retrySender).send\n\t/Users/tnajaryan/work/repos/collector-core/exporter/exporterhelper/queued_retry.go:238\ngo.opentelemetry.io/collector/exporter/exporterhelper.(*metricsSenderWithObservability).send\n\t/Users/tnajaryan/work/repos/collector-core/exporter/exporterhelper/metricshelper.go:119\ngo.opentelemetry.io/collector/exporter/exporterhelper.(*queuedRetrySender).start.func1\n\t/Users/tnajaryan/work/repos/collector-core/exporter/exporterhelper/queued_retry.go:129\ngithub.com/jaegertracing/jaeger/pkg/queue.(*BoundedQueue).StartConsumers.func1\n\t/Users/tnajaryan/.go/pkg/mod/github.com/jaegertracing/jaeger@v1.20.0/pkg/queue/bounded_queue.go:77"}
{"level":"error","ts":1603846174.1390579,"caller":"exporterhelper/queued_retry.go:238","msg":"Exporting failed. No more retries left. Dropping data.","component_kind":"exporter","component_type":"otlphttp","component_name":"otlphttp","error":"max elapsed time expired failed to make an HTTP request: Post \"http://localhost:1234\": dial tcp [::1]🔢 connect: connection refused","dropped_items":12,"stacktrace":"go.opentelemetry.io/collector/exporter/exporterhelper.(*retrySender).send\n\t/Users/tnajaryan/work/repos/collector-core/exporter/exporterhelper/queued_retry.go:238\ngo.opentelemetry.io/collector/exporter/exporterhelper.(*metricsSenderWithObservability).send\n\t/Users/tnajaryan/work/repos/collector-core/exporter/exporterhelper/metricshelper.go:119\ngo.opentelemetry.io/collector/exporter/exporterhelper.(*queuedRetrySender).start.func1\n\t/Users/tnajaryan/work/repos/collector-core/exporter/exporterhelper/queued_retry.go:129\ngithub.com/jaegertracing/jaeger/pkg/queue.(*BoundedQueue).StartConsumers.func1\n\t/Users/tnajaryan/.go/pkg/mod/github.com/jaegertracing/jaeger@v1.20.0/pkg/queue/bounded_queue.go:77"}
{"level":"info","ts":1603846174.140094,"caller":"exporterhelper/queued_retry.go:250","msg":"Exporting failed. Will retry the request after interval.","component_kind":"exporter","component_type":"otlphttp","component_name":"otlphttp","error":"failed to make an HTTP request: Post \"http://localhost:1234\": dial tcp [::1]🔢 connect: connection refused","interval":"6.505275214s"}
{"level":"error","ts":1603846177.78816,"caller":"exporterhelper/queued_retry.go:150","msg":"Dropping data because sending_queue is full. Try increasing queue_size.","component_kind":"exporter","component_type":"otlphttp","component_name":"otlphttp","dropped_items":12,"stacktrace":"go.opentelemetry.io/collector/exporter/exporterhelper.(*queuedRetrySender).send\n\t/Users/tnajaryan/work/repos/collector-core/exporter/exporterhelper/queued_retry.go:150\ngo.opentelemetry.io/collector/exporter/exporterhelper.(*metricsExporter).ConsumeMetrics\n\t/Users/tnajaryan/work/repos/collector-core/exporter/exporterhelper/metricshelper.go:79\ngo.opentelemetry.io/collector/processor/batchprocessor.(*batchMetrics).export\n\t/Users/tnajaryan/work/repos/collector-core/processor/batchprocessor/batch_processor.go:260\ngo.opentelemetry.io/collector/processor/batchprocessor.(*batchProcessor).sendItems\n\t/Users/tnajaryan/work/repos/collector-core/processor/batchprocessor/batch_processor.go:165\ngo.opentelemetry.io/collector/processor/batchprocessor.(*batchProcessor).startProcessingCycle\n\t/Users/tnajaryan/work/repos/collector-core/processor/batchprocessor/batch_processor.go:145"}
{"level":"warn","ts":1603846177.78847,"caller":"batchprocessor/batch_processor.go:166","msg":"Sender failed","component_kind":"processor","component_type":"batch","component_name":"batch","error":"Dropping data because sending_queue is full. Try increasing queue_size."}
{"level":"warn","ts":1603846179.797478,"caller":"batchprocessor/batch_processor.go:166","msg":"Sender failed","component_kind":"processor","component_type":"batch","component_name":"batch","error":"Dropping data because sending_queue is full. Try increasing queue_size."}
{"level":"warn","ts":1603846180.798402,"caller":"batchprocessor/batch_processor.go:166","msg":"Sender failed","component_kind":"processor","component_type":"batch","component_name":"batch","error":"Dropping data because sending_queue is full. Try increasing queue_size."}
{"level":"warn","ts":1603846181.8058171,"caller":"batchprocessor/batch_processor.go:166","msg":"Sender failed","component_kind":"processor","component_type":"batch","component_name":"batch","error":"Dropping data because sending_queue is full. Try increasing queue_size."}
{"level":"error","ts":1603846185.3383482,"caller":"exporterhelper/queued_retry.go:238","msg":"Exporting failed. No more retries left. Dropping data.","component_kind":"exporter","component_type":"otlphttp","component_name":"otlphttp","error":"max elapsed time expired failed to make an HTTP request: Post \"http://localhost:1234\": dial tcp [::1]🔢 connect: connection refused","dropped_items":12,"stacktrace":"go.opentelemetry.io/collector/exporter/exporterhelper.(*retrySender).send\n\t/Users/tnajaryan/work/repos/collector-core/exporter/exporterhelper/queued_retry.go:238\ngo.opentelemetry.io/collector/exporter/exporterhelper.(*metricsSenderWithObservability).send\n\t/Users/tnajaryan/work/repos/collector-core/exporter/exporterhelper/metricshelper.go:119\ngo.opentelemetry.io/collector/exporter/exporterhelper.(*queuedRetrySender).start.func1\n\t/Users/tnajaryan/work/repos/collector-core/exporter/exporterhelper/queued_retry.go:129\ngithub.com/jaegertracing/jaeger/pkg/queue.(*BoundedQueue).StartConsumers.func1\n\t/Users/tnajaryan/.go/pkg/mod/github.com/jaegertracing/jaeger@v1.20.0/pkg/queue/bounded_queue.go:77"}
{"level":"info","ts":1603846185.339205,"caller":"exporterhelper/queued_retry.go:250","msg":"Exporting failed. Will retry the request after interval.","component_kind":"exporter","component_type":"otlphttp","component_name":"otlphttp","error":"failed to make an HTTP request: Post \"http://localhost:1234\": dial tcp [::1]🔢 connect: connection refused","interval":"5.318897979s"}
^C{"level":"info","ts":1603846187.05004,"caller":"service/service.go:265","msg":"Received signal from OS","signal":"interrupt"}
{"level":"info","ts":1603846187.050097,"caller":"service/service.go:432","msg":"Starting shutdown..."}
```
2020-10-28 18:07:56 -04:00
Jay Camp 1e65674799
Update copyright (#1597)
* Update copyright

* rebase
2020-08-19 18:25:44 -07:00
Bogdan Drutu 6a3557268a
Use enabled for queue and retry. More human readable (#1433)
Signed-off-by: Bogdan Drutu <bogdandrutu@gmail.com>
2020-07-27 06:48:30 -07:00
Bogdan Drutu 4046234701
Add support for queued retry in the exporter helper. (#1386)
* Add support for queued retry in the exporter helper.

Changed only the OTLP exporter for the moment to use the new settings.

Timeout is enabled for all the exporters. Fixes #1193

There are some missing features that will be added in a followup PR:
1. Enforcing errors. For the moment added the Throttle error as a hack to keep backwards compatibility with OTLP.
2. Enable queued and retry for all exporters.
3. Fix observability metrics for the case when requests are dropped because the queue is full.

* First round of comments addressed
2020-07-17 14:07:03 -07:00
Bogdan Drutu 68c4e05c29
ExporterHelper: Add ability to configure start function and remove duplicate code (#1337)
Signed-off-by: Bogdan Drutu <bogdandrutu@gmail.com>
2020-07-13 20:33:50 -07:00
Bruno Garcia 8aa2731844
Remove year from copyright (#964) 2020-05-26 12:44:22 -04:00
Bogdan Drutu eea53c92e3
Update exporterhelper to use the Shutdown with context (#798)
Signed-off-by: Bogdan Drutu <bogdandrutu@gmail.com>
2020-04-06 13:42:46 -07:00
Paulo Janotti d6147389a6
Change exporterhelper from observability to obsreport package (#568)
This is the first part of moving all components to use the obsreport package (with the goal of making uniform the metrics used by various components).

- introduce the command-line option to select the new/legacy metrics, the default for now is legacy metrics.
- remove the options to have or not metrics and tracing from exporterhelper since all usages were enabling both (the only not using it on contrib was by mistake)
2020-02-26 12:53:35 -08:00
Bogdan Drutu 97a71b3b8d
Use full name for the metrics and spans created for observability (#316)
* Use full name for the metrics and spans created for observability, remove Name from Exporter

* Update error name

* Add tests for ComponentName
2019-09-04 10:59:49 -04:00
Constance Caramanolis 068dcaeca9 Implement Shutdown() method from exporter interfaces (#259)
* INITIAL

* Properly implement name

* reword comment

* address comments and rename stop to shutdown

* Use assert in tests, change to shutdown instead of shutdownFunc and add some missing comments.
2019-08-20 07:19:59 -07:00
Yang Song dc4266d4aa Add misspell check and fix all typos (#214)
* Add misspell check and fix all typos

Updates #155.

* Format

* Include yaml files
2019-07-31 13:59:06 -07:00
Steve Flanders 559835ceee
Change census-instrumentation to open-telemetry and update authors (#20)
* Change census-instrumentation to open-telemetry and update authors

census-instrumentation/opencensus is now open-telemetry/opentelemetry

"OpenCensus Authors" is now "OpenTelemetry Authors"

"Copyright 2018" is now "Copyright 2019"

Fix go fmt
2019-06-18 14:22:28 -07:00
Bogdan Drutu 51944b606f
Add exporterhelper to wrap all exporters with observability. (#484)
* Add exporterhelper to wrap all exporters with observability.

* Remove the nop view exporter, no needed.

* Move constants in constants.go, add TODO to handle gRPC errors.

* Don't export the errors exporterhelper returns.
2019-03-11 16:01:48 -07:00