Dynatrace OneAgent SDK for C/C++  1.7.1.1
Channel Types and Endpoints

Describes communication (networking, I/O) channels and endpoints. More...

Channel Type Constants

See also
Channel Types and Endpoints

#define ONESDK_CHANNEL_TYPE_OTHER   0
 Some other channel type or unknown channel type. More...
 
#define ONESDK_CHANNEL_TYPE_TCP_IP   1
 The channel is a TCP/IP connection. More...
 
#define ONESDK_CHANNEL_TYPE_UNIX_DOMAIN_SOCKET   2
 The channel is a connection via Unix domain sockets. More...
 
#define ONESDK_CHANNEL_TYPE_NAMED_PIPE   3
 The channel is a named pipe. More...
 
#define ONESDK_CHANNEL_TYPE_IN_PROCESS   4
 The channel is some in-process means of communication. More...
 

Detailed Description

Describes communication (networking, I/O) channels and endpoints.

When we talk about channel types and channel endpoints in the SDK, we're talking about a "communication channel" which is used to access/communicate with some service or resource. Mapped to the OSI model or Internet protocol suite, our kind of channels would be located in the transport layer. So, unsurprisingly, there is a channel type ONESDK_CHANNEL_TYPE_TCP_IP. Communication doesn't always happen over the network though, so for e.g. in-process communication there's also ONESDK_CHANNEL_TYPE_IN_PROCESS.

So if, for example, your application is sending SOAP requests via HTTP via TCP/IP, then the channel we're talking about would be the TCP/IP connection.

The channel endpoint then is the endpoint of that connection. E.g. for a TCP/IP connection that endpoint is usually expressed by an IP:PORT or HOSTNAME:PORT pair, so that's what your application should use if the channel type is ONESDK_CHANNEL_TYPE_TCP_IP.

Unless specified otherwise, the channel type is a mandatory parameter and the channel endpoint is optional. If there is no suitable constant for the type of communication channel your application uses, it should use ONESDK_CHANNEL_TYPE_OTHER.

Note
Although the channel endpoint is optional, it's highly advised to include it for all channel types that specify a format for the channel endpoint string. Having the channel endpoint allows us to better map which hosts/services/processes are talking to each other.

For further information, see the high level SDK documentation at https://github.com/Dynatrace/OneAgent-SDK/#endpoints

Macro Definition Documentation

◆ ONESDK_CHANNEL_TYPE_IN_PROCESS

#define ONESDK_CHANNEL_TYPE_IN_PROCESS   4

The channel is some in-process means of communication.

Any string can be used as channel endpoint for this type. An application should use this channel type e.g. for database requests serviced by an in-process database like SQLite.

◆ ONESDK_CHANNEL_TYPE_NAMED_PIPE

#define ONESDK_CHANNEL_TYPE_NAMED_PIPE   3

The channel is a named pipe.

The channel endpoint string should be the pipe name.

◆ ONESDK_CHANNEL_TYPE_OTHER

#define ONESDK_CHANNEL_TYPE_OTHER   0

Some other channel type or unknown channel type.

Any string can be used as channel endpoint for this type.

◆ ONESDK_CHANNEL_TYPE_TCP_IP

#define ONESDK_CHANNEL_TYPE_TCP_IP   1

The channel is a TCP/IP connection.

The channel endpoint string should be the host name, followed by a colon, followed by the port number (in decimal). E.g. localhost:1234 or example.com:80.

◆ ONESDK_CHANNEL_TYPE_UNIX_DOMAIN_SOCKET

#define ONESDK_CHANNEL_TYPE_UNIX_DOMAIN_SOCKET   2

The channel is a connection via Unix domain sockets.

The channel endpoint string should be the path of the Unix domain sockets.