def test_constructor(self): pyramid_trace_header = 'X-Cloud-Trace-Context' trace_id = '2dd43a1d6b2549c6bc2a1a54c2fc0b05' span_id = '6e0c63257de34c92' pyramid_trace_id = '{}/{}'.format(trace_id, span_id) response = Response() def dummy_handler(request): return response mock_registry = mock.Mock(spec=Registry) mock_registry.settings = {} mock_registry.settings['OPENCENSUS_TRACE'] = { 'EXPORTER': print_exporter.PrintExporter() } middleware = pyramid_middleware.OpenCensusTweenFactory( dummy_handler, mock_registry, ) assert isinstance(middleware.sampler, always_on.AlwaysOnSampler) assert isinstance(middleware.exporter, print_exporter.PrintExporter) assert isinstance(middleware.propagator, google_cloud_format.GoogleCloudFormatPropagator) # Just a smoke test to make sure things work request = DummyRequest( registry=mock_registry, path='/', headers={pyramid_trace_header: pyramid_trace_id}, ) assert middleware(request) == response
def main(): sampler = always_on.AlwaysOnSampler() exporter = print_exporter.PrintExporter() #tracer = Tracer(sampler=sampler, exporter=exporter) je = JaegerExporter(service_name="pitoncito", host_name='jaeger-server', port=9411, endpoint='/api/traces') tracer = Tracer(exporter=je, sampler=always_on.AlwaysOnSampler()) with tracer.span(name='root'): tracer.add_attribute_to_current_span(attribute_key='miclave', attribute_value='mivalor') function_to_trace() with tracer.span(name='child'): function_to_trace() # Get the current tracer tracer = execution_context.get_opencensus_tracer() # Explicitly create spans tracer.start_span() # Get current span execution_context.get_current_span() # Explicitly end span tracer.end_span()
def __init__(self, exporter=None, span_context=None): if exporter is None: exporter = print_exporter.PrintExporter() if span_context is None: span_context = SpanContext() self.exporter = exporter self.span_context = span_context self.trace_id = span_context.trace_id self.root_span_id = span_context.span_id # List of spans to report self._spans_list = []
def run_app(): settings = {} exporter = print_exporter.PrintExporter() sampler = probability.ProbabilitySampler(rate=1) settings['OPENCENSUS_TRACE'] = { 'EXPORTER': exporter, 'SAMPLER': sampler, } app = main({}, **settings) server = make_server('localhost', 8080, app) server.serve_forever()
def _instance(self): sampler = always_on.AlwaysOnSampler() exporter = print_exporter.PrintExporter( transport=background_thread.BackgroundThreadTransport) # exporter = stackdriver_exporter.StackdriverExporter(project_id="") tracer_interceptor = server_interceptor.OpenCensusServerInterceptor( sampler, exporter) server = grpc.server( futures.ThreadPoolExecutor(max_workers=self.max_workers), interceptors=(tracer_interceptor, )) ouroboros_pb2_grpc.add_OuroborosServicer_to_server( OuroborosServicer(), server) server.add_insecure_port(f"{self.host}:{self.port}") return server
def __init__(self, app, blacklist_paths=None, sampler=None, exporter=None, propagator=None): if sampler is None: sampler = always_on.AlwaysOnSampler() if exporter is None: exporter = print_exporter.PrintExporter() if propagator is None: propagator = google_cloud_format.GoogleCloudFormatPropagator() self.app = app self.blacklist_paths = blacklist_paths self.sampler = sampler self.exporter = exporter self.propagator = propagator self.setup_trace()
def __init__(self, span_context=None, sampler=None, exporter=None, propagator=None): if span_context is None: span_context = SpanContext() if sampler is None: sampler = always_on.AlwaysOnSampler() if exporter is None: exporter = print_exporter.PrintExporter() if propagator is None: propagator = google_cloud_format.GoogleCloudFormatPropagator() self.span_context = span_context self.sampler = sampler self.exporter = exporter self.propagator = propagator self.tracer = self.get_tracer() self.store_tracer()
def main(): sampler = always_on.AlwaysOnSampler() exporter = print_exporter.PrintExporter() tracer = Tracer(sampler=sampler, exporter=exporter) with tracer.span(name='root'): tracer.add_attribute_to_current_span(attribute_key='example key', attribute_value='example value') function_to_trace() with tracer.span(name='child'): function_to_trace() # Get the current tracer tracer = execution_context.get_opencensus_tracer() # Explicitly create spans tracer.start_span() # Get current span execution_context.get_current_span() # Explicitly end span tracer.end_span()
# # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # 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. from opencensus.trace.samplers import always_on from opencensus.trace.exporters import print_exporter from opencensus.trace.propagation import google_cloud_format DEFAULT_PYRAMID_TRACER_CONFIG = { 'SAMPLER': always_on.AlwaysOnSampler(), 'EXPORTER': print_exporter.PrintExporter(), 'PROPAGATOR': google_cloud_format.GoogleCloudFormatPropagator() } DEFAULT_PYRAMID_TRACER_PARAMS = { # https://cloud.google.com/appengine/docs/flexible/python/ # how-instances-are-managed#health_checking 'BLACKLIST_PATHS': ['_ah/health'], } class PyramidTraceSettings(object): def __init__(self, registry): self.settings = registry.settings.get('OPENCENSUS_TRACE', DEFAULT_PYRAMID_TRACER_CONFIG)