Untitled
unknown
plain_text
2 years ago
1.6 kB
7
Indexable
// Файл Program.cs (точка входа)
using Jaeger;
using Jaeger.Samplers;
using OpenTracing.Util;
using Jaeger.Reporters;
using Jaeger.Senders.Thrift;
// Создаём экземпляр трассировщика Jaeger
var reporter = new RemoteReporter.Builder()
.WithSender(new UdpSender("host.docker.internal", 6831, 0))
.Build();
var tracer = new Tracer.Builder("addos")
.WithReporter(reporter)
.WithSampler(new ConstSampler(true))
.Build();
// Устанавливаем трассировщик как глобальный трассировщик в OpenTracing
GlobalTracer.Register(tracer);
// Файл DdosDetector.cs
using OpenTracing.Util;
// В функции public async Task MonitorConnectionsAsync():
using (var scope = GlobalTracer.Instance.BuildSpan("AcceptConnection").StartActive(true))
{
// Отслеживаем подключение в объекте connectionTracker
connectionTracker.TrackConnection(client);
// Увеличиваем счётчики подключений
totalConnections++;
connectionsPerMinute++;
// Увеличиваем метрики подключений
s_totalConnections.Inc();
s_connectionsPerMinute.Inc();
// Добавьте теги или логи в спан, если это необходимо
scope.Span.SetTag("client-ip", client.Client.RemoteEndPoint.ToString());
scope.Span.Log(new Dictionary<string, object>
{
["event"] = "connection-accepted",
["value"] = totalConnections
});
}
Editor is loading...
Leave a Comment