diff options
Diffstat (limited to 'include/opentracing/ext')
-rw-r--r-- | include/opentracing/ext/tags.h | 122 |
1 files changed, 122 insertions, 0 deletions
diff --git a/include/opentracing/ext/tags.h b/include/opentracing/ext/tags.h new file mode 100644 index 0000000..746cd37 --- /dev/null +++ b/include/opentracing/ext/tags.h @@ -0,0 +1,122 @@ +#ifndef OPENTRACING_EXT_TAGS_H +#define OPENTRACING_EXT_TAGS_H + +#include <opentracing/string_view.h> +#include <opentracing/symbols.h> +#include <opentracing/version.h> + +namespace opentracing { +BEGIN_OPENTRACING_ABI_NAMESPACE +namespace ext { +// The following tags are described in greater detail at the following url: +// https://github.com/opentracing/specification/blob/master/semantic_conventions.md +// +// Here we define standard names for tags that can be added to spans by the +// instrumentation code. The actual tracing systems are not required to +// retain these as tags in the stored spans if they have other means of +// representing the same data. For example, the SPAN_KIND='server' can be +// inferred from a Zipkin span by the presence of ss/sr annotations. + +// --------------------------------------------------------------------------- +// span_kind hints at relationship between spans, e.g. client/server +// --------------------------------------------------------------------------- +OPENTRACING_API extern const opentracing::string_view span_kind; + +// Marks a span representing the client-side of an RPC or other remote call +OPENTRACING_API extern const opentracing::string_view span_kind_rpc_client; + +// Marks a span representing the server-side of an RPC or other remote call +OPENTRACING_API extern const opentracing::string_view span_kind_rpc_server; + +// --------------------------------------------------------------------------- +// error indicates whether a Span ended in an error state. +// --------------------------------------------------------------------------- +OPENTRACING_API extern const opentracing::string_view error; + +// --------------------------------------------------------------------------- +// component (string) ia s low-cardinality identifier of the module, library, +// or package that is generating a span. +// --------------------------------------------------------------------------- +OPENTRACING_API extern const opentracing::string_view component; + +// --------------------------------------------------------------------------- +// sampling_priority (uint16) determines the priority of sampling this Span. +// --------------------------------------------------------------------------- +OPENTRACING_API extern const opentracing::string_view sampling_priority; + +// --------------------------------------------------------------------------- +// peer_* tags can be emitted by either client-side of server-side to describe +// the other side/service in a peer-to-peer communications, like an RPC call. +// --------------------------------------------------------------------------- +// peer_service (string) records the service name of the peer +OPENTRACING_API extern const opentracing::string_view peer_service; + +// peer_hostname (string) records the host name of the peer +OPENTRACING_API extern const opentracing::string_view peer_hostname; + +// peer_address (string) suitable for use in a networking client library. +// This may be a "ip:port", a bare "hostname", a FQDN, or even a +// JDBC substring like "mysql://prod-db:3306" +OPENTRACING_API extern const opentracing::string_view peer_address; + +// peer_host_ipv4 (uint32) records IP v4 host address of the peer +OPENTRACING_API extern const opentracing::string_view peer_host_ipv4; + +// peer_host_ipv6 (string) records IP v6 host address of the peer +OPENTRACING_API extern const opentracing::string_view peer_host_ipv6; + +// peer_port (uint16) records port number of the peer +OPENTRACING_API extern const opentracing::string_view peer_port; + +// --------------------------------------------------------------------------- +// HTTP tags +// --------------------------------------------------------------------------- + +// http_url (string) should be the URL of the request being handled in this +// segment of the trace, in standard URI format. The protocol is optional. +OPENTRACING_API extern const opentracing::string_view http_url; + +// http_method (string) is the HTTP method of the request. +// Both upper/lower case values are allowed. +OPENTRACING_API extern const opentracing::string_view http_method; + +// http_status_code (int) is the numeric HTTP status code (200, 404, etc) +// of the HTTP response. +OPENTRACING_API extern const opentracing::string_view http_status_code; + +// --------------------------------------------------------------------------- +// DATABASE tags +// --------------------------------------------------------------------------- + +// database_instance (string) The database instance name. E.g., In java, if +// the jdbc.url="jdbc:mysql://127.0.0.1:3306/customers", the instance +// name is "customers" +OPENTRACING_API extern const opentracing::string_view database_instance; + +// database_statement (string) A database statement for the given database +// type. E.g., for db.type="SQL", "SELECT * FROM user_table"; +// for db.type="redis", "SET mykey 'WuValue'". +OPENTRACING_API extern const opentracing::string_view database_statement; + +// database_type (string) For any SQL database, "sql". For others, +// the lower-case database category, e.g. "cassandra", "hbase", or "redis". +OPENTRACING_API extern const opentracing::string_view database_type; + +// database_user (string) Username for accessing database. E.g., +// "readonly_user" or "reporting_user" +OPENTRACING_API extern const opentracing::string_view database_user; + +// --------------------------------------------------------------------------- +// message_bus tags +// --------------------------------------------------------------------------- + +// message_bus_destination (string) An address at which messages can be +// exchanged. E.g. A Kafka record has an associated "topic name" that can +// be extracted by the instrumented producer or consumer and stored +// using this tag. +OPENTRACING_API extern const opentracing::string_view message_bus_destination; +} // namespace ext +END_OPENTRACING_ABI_NAMESPACE +} // namespace opentracing + +#endif // OPENTRACING_EXT_TAGS_H |