You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
the view_manager.register_view is synchronous and is not resilient to errors. When stackdriver was momentarily down, our service failed to initialize with the following exception:
Similar to the Java version and the python create time series export(#297) , I'd expect the register_views call to not block and to suppress all errors with a log statement to record it happened.
Smoother request rate across the fleet (it's more randomized as it happens on the first request/instance of an event rather than at service boot time)
We have thousands of servers and there are situations (AZ failures, bad kernel update, etc) we have to restart a couple hundred at once. This is a risk here that we blow our create metric descriptor quota and fail to initialize opencensus appropriately, making points 1 and 2 important
Easier in large code bases. Right now, my understanding is that all exporters need to be initialized before any view is registered. It can become a bit painful to ensure the setup procedure is strictly followed.
Alignment with opencensus-java reducing the required context for teams operating in a multi-service/multi-language world.
version=0.3.1
At the moment, even though Stackdriver is initialized with its default async transport:
opencensus-python/opencensus/stats/exporters/stackdriver_exporter.py
Lines 113 to 124 in bebc508
the
view_manager.register_viewis synchronous and is not resilient to errors. When stackdriver was momentarily down, our service failed to initialize with the following exception:Similar to the Java version and the python create time series export(#297) , I'd expect the register_views call to not block and to suppress all errors with a log statement to record it happened.
https://github.com/census-instrumentation/opencensus-java/blob/538d77e4eeb18df592b04f794a400e981bb1b649/exporters/stats/stackdriver/src/main/java/io/opencensus/exporter/stats/stackdriver/CreateMetricDescriptorExporter.java#L129-L149
The java stackdriver exporter maintains a map of all seen descriptors and will attempt to create a descriptor only when it receives a create time series request for a new descriptor. I.e. it doesn't create the descriptor on the register view call. This has several advantages:
We have thousands of servers and there are situations (AZ failures, bad kernel update, etc) we have to restart a couple hundred at once. This is a risk here that we blow our create metric descriptor quota and fail to initialize opencensus appropriately, making points 1 and 2 important