NVIDIA DeepStream SDK API Reference

9.2 Release
includes/opentelemetry/exporters/ostream/span_exporter.h
Go to the documentation of this file.
1 // Copyright The OpenTelemetry Authors
2 // SPDX-License-Identifier: Apache-2.0
3 
4 #pragma once
5 
6 #include <atomic>
7 #include <chrono>
8 #include <iostream>
9 #include <map>
10 #include <memory>
11 #include <string>
12 #include <unordered_map>
13 #include <vector>
14 
15 #include "opentelemetry/nostd/span.h"
16 #include "opentelemetry/sdk/common/attribute_utils.h"
17 #include "opentelemetry/sdk/common/exporter_utils.h"
18 #include "opentelemetry/sdk/instrumentationscope/instrumentation_scope.h"
19 #include "opentelemetry/sdk/resource/resource.h"
20 #include "opentelemetry/sdk/trace/exporter.h"
21 #include "opentelemetry/sdk/trace/recordable.h"
22 #include "opentelemetry/sdk/trace/span_data.h"
23 #include "opentelemetry/version.h"
24 
26 namespace exporter
27 {
28 namespace trace
29 {
30 
34 class OStreamSpanExporter final : public opentelemetry::sdk::trace::SpanExporter
35 {
36 public:
42  explicit OStreamSpanExporter(std::ostream &sout = std::cout) noexcept;
43 
44  std::unique_ptr<opentelemetry::sdk::trace::Recordable> MakeRecordable() noexcept override;
45 
47  const opentelemetry::nostd::span<std::unique_ptr<opentelemetry::sdk::trace::Recordable>>
48  &spans) noexcept override;
49 
55  bool ForceFlush(
56  std::chrono::microseconds timeout = (std::chrono::microseconds::max)()) noexcept override;
57 
58  bool Shutdown(
59  std::chrono::microseconds timeout = (std::chrono::microseconds::max)()) noexcept override;
60 
61 private:
62  std::ostream &sout_;
63  std::atomic<bool> is_shutdown_{false};
64  bool isShutdown() const noexcept;
65 
66  // Mapping status number to the string from api/include/opentelemetry/trace/span_metadata.h
67  std::map<int, std::string> statusMap{{0, "Unset"}, {1, "Ok"}, {2, "Error"}};
68 
69  // various print helpers
70  void printAttributes(
71  const std::unordered_map<std::string, opentelemetry::sdk::common::OwnedAttributeValue> &map,
72  const std::string &prefix = "\n\t");
73 
74  void printEvents(const std::vector<opentelemetry::sdk::trace::SpanDataEvent> &events);
75 
76  void printLinks(const std::vector<opentelemetry::sdk::trace::SpanDataLink> &links);
77 
78  void printResources(const opentelemetry::sdk::resource::Resource &resources);
79 
80  void printInstrumentationScope(
81  const opentelemetry::sdk::instrumentationscope::InstrumentationScope &instrumentation_scope);
82 };
83 } // namespace trace
84 } // namespace exporter
sdk::common::ExportResult
ExportResult
ExportResult is returned as result of exporting a batch of Records.
Definition: includes/opentelemetry/sdk/common/exporter_utils.h:16
trace
Definition: includes/opentelemetry/context/context_value.h:18
exporter::trace::OStreamSpanExporter::Shutdown
bool Shutdown(std::chrono::microseconds timeout=(std::chrono::microseconds::max)()) noexcept override
exporter::trace::OStreamSpanExporter
The OStreamSpanExporter exports span data through an ostream.
Definition: includes/opentelemetry/exporters/ostream/span_exporter.h:34
exporter
Definition: includes/opentelemetry/exporters/memory/in_memory_data.h:11
OPENTELEMETRY_BEGIN_NAMESPACE
#define OPENTELEMETRY_BEGIN_NAMESPACE
Definition: includes/opentelemetry/version.h:21
exporter::trace::OStreamSpanExporter::ForceFlush
bool ForceFlush(std::chrono::microseconds timeout=(std::chrono::microseconds::max)()) noexcept override
Force flush the exporter.
max
int max(int a, int b)
Compute the component-wise maximum.
Definition: sources/libs/nvmultiobjecttracker/include/modules/cuDCFv2/helper_math.h:60
exporter::trace::OStreamSpanExporter::MakeRecordable
std::unique_ptr< opentelemetry::sdk::trace::Recordable > MakeRecordable() noexcept override
OPENTELEMETRY_END_NAMESPACE
#define OPENTELEMETRY_END_NAMESPACE
Definition: includes/opentelemetry/version.h:24
exporter::trace::OStreamSpanExporter::Export
sdk::common::ExportResult Export(const opentelemetry::nostd::span< std::unique_ptr< opentelemetry::sdk::trace::Recordable >> &spans) noexcept override
exporter::trace::OStreamSpanExporter::OStreamSpanExporter
OStreamSpanExporter(std::ostream &sout=std::cout) noexcept
Create an OStreamSpanExporter.