def __init__(self, server, proxy=False, token=None):
     if not proxy:
         self._client = WavefrontDirectClient(server, token)
     else:
         self._client = WavefrontProxyClient(
             host=server, metrics_port=2878,
             distribution_port=2878, tracing_port=30000)
class WavefrontDirectRecorder(WavefrontRecorder):
    def __init__(self, server, token, source, tags=None):
        super().__init__(source, tags)
        self.server = server
        self.token = token

    @property
    def client(self):
        if self._client is None:
            self._client = WavefrontDirectClient(self.server,
                                                 self.token,
                                                 batch_size=10000)
        return self._client

    def handle(self, messages):
        super().handle(messages)
        self._client.flush_now()
Exemplo n.º 3
0
def createSendWavefrontClient():
    global globalEnv
    globalEnv = globalConfig.getValueByKey('FOREMAST_ENV')
    _server = globalConfig.getValueByKey('WAVEFRONT_ENDPOINT')
    _token = globalConfig.getValueByKey('WAVEFRONT_TOKEN')
    if (_server is None or _server == '' or _token is None or _token == ''):
        logger.error("wavefront endpoint or token is null")
        return None
    try:
        global sendClient
        sendClient = wavefront_sender = WavefrontDirectClient(
            server=_server,
            token=_token,
            max_queue_size=10,
            batch_size=10,
            flush_interval_seconds=1)
        return sendClient
    except Exception as e:
        logger.error("WavefrontDirectClient failed " + str(e))
    return None
Exemplo n.º 4
0
        action='store_true',
        help='proccess "service-perfdata" (default: "host-perfdata")')
    parser.add_argument('--test', dest='test', action='store_true')
    parser.add_argument('--wf_server', dest="server")
    parser.add_argument('--wf_token', dest="token")
    parser.add_argument('--wf_proxy_addr', dest="addr")
    parser.add_argument('--wf_proxy_port', dest="port")

    args = parser.parse_args()
    logging.info(args)

    if args.addr is not None and args.port is not None:
        client = WavefrontProxyClient(host=args.addr,
                                      metrics_port=args.port,
                                      distribution_port=40000,
                                      tracing_port=30000)
    elif args.server is not None and args.token is not None:
        client = WavefrontDirectClient(server=args.server,
                                       token=args.token,
                                       max_queue_size=50000,
                                       batch_size=10000,
                                       flush_interval_seconds=15)
    else:
        parser.print_help()
        exit(-1)

    try:
        main()
    finally:
        client.close()
Exemplo n.º 5
0
d) Value: 42

e) TimeStamp: Local timestamp in milliseconds

f) Source: “sd-laptop”

g) Tags: { “developer”: “sd”, “codetest”: “python” }

h) Must flush and close the connection
Must print to console: 

“Metric send to <server>”
“Failures: <failure_count>”

Catch all exceptions when sending the metric and print any error captured

'''
#from wavefront_sdk import WavefrontProxyClient
from wavefront_sdk import WavefrontDirectClient
import time

if __name__ == '__main__':
    try:
        wavefront_sender = WavefrontDirectClient(
            server="https://elgon.wavefront.com",
            token="37e6297f-b9f7-44d9-b444-d3dab1082426"
        )

        wavefront_sender.send_metric(
            name="sd.interview.test", value=42, timestamp=round(time.time()),
            source = "sd-laptop", tags = { "developer": "sd", "codetest": "python"})

    except Exception as e:
        print("An error occurred: {}".format(e))
    finally:
        total_failures = wavefront_sender.get_failure_count()
        print("Failures: {}".format(total_failures))

    wavefront_sender.flush_now()
    wavefront_sender.close()
'''
 def client(self):
     if self._client is None:
         self._client = WavefrontDirectClient(self.server,
                                              self.token,
                                              batch_size=10000)
     return self._client
Exemplo n.º 7
0
@author: Hao Song ([email protected])
"""
import time
from opentracing import child_of, follows_from
from wavefront_sdk import WavefrontDirectClient, WavefrontProxyClient
from wavefront_opentracing_sdk import WavefrontTracer
from wavefront_opentracing_sdk.reporting import CompositeReporter, \
    WavefrontSpanReporter, ConsoleReporter

# pylint: disable=invalid-name
if __name__ == "__main__":
    # Create Wavefront Span Reporter using Wavefront Direct Client.
    direct_client = WavefrontDirectClient(
        server="http://localhost:8080",
        token="9ea0d7c3-311a-419b-86b1-7a515f4aff76",
        max_queue_size=50000,
        batch_size=10000,
        flush_interval_seconds=5)
    direct_reporter = WavefrontSpanReporter(direct_client)

    # Create Wavefront Span Reporter using Wavefront Proxy Client.
    proxy_client = WavefrontProxyClient(host="localhost",
                                        tracing_port=30000,
                                        distribution_port=40000,
                                        metrics_port=2878)
    proxy_reporter = WavefrontSpanReporter(proxy_client)

    # Create Composite reporter.
    # Use ConsoleReporter to output span data to console.
    composite_reporter = CompositeReporter(proxy_reporter, direct_reporter,
                                           ConsoleReporter())