Page History
...
Netty 참고 성능표 : https://github.com/ronenhamias/netty-perf-testing/wiki/Netty-3-Throughput-test
단순하게 모니터링 집계용도로 직접 설계한다고 하면, 액터 객체를 사용할 필요는 없으나,
비동기 병렬처리 프로그래밍 ( 공유객체 카운팅 증가에 따른 락처리)을 포함하여
Matrix 집계를 일정시간에 수행 하고 Matrix서버에 보고 등 부가적인 기능을 직접 구현해야합니다Akka를 사용하지 않는 기존 시스템은 변경없이, 도메인 이벤트 카운팅 모니터링 기능만을 빌트인해보겠습니다.
액터 모니터링 시스템 탑재하기
Code Block | ||
---|---|---|
| ||
using Akka.Monitoring; using Akka.Monitoring.ApplicationInsights; using Akka.Monitoring.Datadog; using Akka.Monitoring.PerformanceCounters; using Akka.Monitoring.Prometheus; var MonitorTool = Environment.GetEnvironmentVariable("MonitorTool"); var MonitorToolCon = Environment.GetEnvironmentVariable("MonitorToolCon"); switch (MonitorTool) { case "win": var win = ActorMonitoringExtension.RegisterMonitor(actorSystem, new ActorPerformanceCountersMonitor( new CustomMetrics { Counters = { "akka.custom.metric1", "akkacore.message" }, Gauges = { "akka.messageboxsize" }, Timers = { "akka.handlertime" } })); break; case "azure": var azure = ActorMonitoringExtension.RegisterMonitor(actorSystem, new ActorAppInsightsMonitor(appConfig.MonitorToolCon)); break; case "prometheus": // prometheusMonotor 를 사용하기위해서, MerticServer를 켠다...(수집형 모니터,Agent탑재) // http://localhost:10250/metrics - 여기서 제공되는 metrics의 포맺과 호환되는 여러종류의 데시보드들과 연동하여 시각화가능합니다. metricServer = new MetricServer(10250); metricServer.Start(); var prometheus = ActorMonitoringExtension.RegisterMonitor(actorSystem, new ActorPrometheusMonitor(actorSystem)); break; case "datadog": var statsdConfig = new StatsdConfig { StatsdServerName = MonitorToolCon }; var dataDog = ActorMonitoringExtension. RegisterMonitor(actorSystem, new ActorDatadogMonitor(statsdConfig)); break; } |
...