private static DogStatsdService CreateService( TemporaryPath temporaryPath, HostnameProvider hostnameProvider = HostnameProvider.Property) { var serverName = StatsdBuilder.UnixDomainSocketPrefix + temporaryPath.Path; var dogstatsdConfig = new StatsdConfig { StatsdMaxUnixDomainSocketPacketSize = 1000 }; switch (hostnameProvider) { case HostnameProvider.Property: dogstatsdConfig.StatsdServerName = serverName; break; case HostnameProvider.Environment: { Environment.SetEnvironmentVariable(StatsdConfig.AgentHostEnvVar, serverName); break; } } var dogStatsdService = new DogStatsdService(); dogStatsdService.Configure(dogstatsdConfig); return(dogStatsdService); }
public async Task Invoke(HttpContext context) { using (var spanBuilder = Trace.BeginSpan()) { var url = GetUrl(context.Request); spanBuilder.SetAnnotation(TracingAnnotationNames.Operation, GetOperationName(context.Request.Method, url)); spanBuilder.SetAnnotation(TracingAnnotationNames.Kind, "http-server"); spanBuilder.SetAnnotation(TracingAnnotationNames.Service, serviceName); spanBuilder.SetAnnotation(TracingAnnotationNames.Host, HostnameProvider.Get()); spanBuilder.SetAnnotation(TracingAnnotationNames.HttpUrl, url.ToStringWithoutQuery()); if (context.Request.ContentLength.HasValue) { spanBuilder.SetAnnotation(TracingAnnotationNames.HttpRequestContentLength, context.Request.ContentLength); } try { await next.Invoke(context).ConfigureAwait(false); if (context.Response.ContentLength.HasValue) { spanBuilder.SetAnnotation(TracingAnnotationNames.HttpResponseContentLength, context.Response.ContentLength); } spanBuilder.SetAnnotation(TracingAnnotationNames.HttpCode, context.Response.StatusCode); } catch { spanBuilder.SetAnnotation(TracingAnnotationNames.HttpCode, (int)HttpStatusCode.InternalServerError); context.Response.StatusCode = 500; } } }
public AddServerForm(ServerRepository serverRepository, HostnameProvider hostnameProvider, WindowsMacAddressProvider windowsMacAddressProvider, ErrorBoxHelper errorBoxHelper) { this.errorBoxHelper = errorBoxHelper; this.serverRepository = serverRepository; this.hostnameProvider = hostnameProvider; this.windowsMacAddressProvider = windowsMacAddressProvider; InitializeComponent(); Translator.Translate(this); }
public void SendSingleMetric(HostnameProvider hostnameProvider) { using (var socket = CreateSocketServer(_temporaryPath)) { using (var service = CreateService(_temporaryPath, hostnameProvider)) { var metric = "gas_tank.level"; var value = 0.75; service.Gauge(metric, value); Assert.AreEqual($"{metric}:{value}|g", ReadFromServer(socket)); } } }
public void Log(LogEvent logEvent) { if (airlockClient == null || string.IsNullOrEmpty(routingKey)) { return; } var logEventData = new LogEventData { Timestamp = DateTimeOffset.UtcNow, // todo (spaceorc, 15.02.2018) возможно, надо сделать поле Timestamp в logEvent? Level = logEvent.Level, Message = LogEventFormatter.FormatMessage(logEvent.MessageTemplate, logEvent.MessageParameters), Exceptions = logEvent.Exception.Parse(), // todo (andrew, 17.01.2018): maybe truncate if serialized Exceptions list has size > 32 kb Properties = logEvent.Properties.ToDictionary(x => x.Key, x => x.Value.ToString()) }; // todo (spaceorc, 13.10.2017) make "host" constant somewhere in Vostok.Core/LogPropertyNames.cs logEventData.Properties["host"] = HostnameProvider.Get(); airlockClient.Push(routingKey, logEventData, logEventData.Timestamp); }
public void Emit(SerilogEvent logEvent) { var airlockClient = getAirlockClient(); var routingKey = getRoutingKey(); if (airlockClient == null || string.IsNullOrEmpty(routingKey)) { return; } var logEventData = new LogEventData { Timestamp = logEvent.Timestamp, Level = TranslateLevel(logEvent.Level), Message = logEvent.MessageTemplate.Render(logEvent.Properties).Truncate(maxMessageLength), Exceptions = logEvent.Exception.Parse(), // todo (andrew, 17.01.2018): maybe truncate if serialized Exceptions list has size > 32 kb Properties = logEvent.Properties.ToDictionary(x => x.Key, x => x.Value.ToString()) }; // todo (spaceorc, 13.10.2017) make "host" constant somewhere in Vostok.Core/LogPropertyNames.cs logEventData.Properties["host"] = HostnameProvider.Get(); airlockClient.Push(routingKey, logEventData, logEventData.Timestamp); }
private void EnrichWithHostname() { SetTag(MetricsTagNames.Host, HostnameProvider.Get()); }