Page History
Info |
---|
어플리케이션에서 생성하는 정보를 분석하고,모니터링 하기 위해서 다음과 같은 방법을 가장 많이 사용합니다.
하지만, 너무나 큰 대용량 처리횟수에대해 실시간성으로 모니터링을 하고 싶다고 하면 Matrix를 활용 합니다. 시간별 CPU변화량,네트워크 변화량 등에 일반적으로 사용되고 있으며 매 이벤트마다 로그를 기록하는 방식이아니고, 증분의 값을 주기적인 시간에 측정함으로 대용량 실시간 카운팅을 측정하는데 효율적입니다. |
...
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; } |
...
- 윈도우 성능 프로파일러 : 로컬에서 극단적인 퍼포먼스 검증시 활용( 물론 개발장비가 윈도우여야함)
- Azure AppinSight : 성능 프로파일을 Azure 클라우드 데시보드로 대시보드로 통합하고자 할때
- Phomethes : 오픈 진영의 성능 프로파일러 데시보드와 대시보드와 연동을 할때 ( Grafana , DataDog등과 연동이 가능해집니다.)
...
여기서 설명되는 방식은,Azure AppInsight 뿐만아니라, 다양한 오픈 플랫폼 데시보드와도 대시보드와도 연동가능합니다. ( 매트릭스기반의 Grafana,DataDog등....)
...
Info |
---|
모니터링을 위해 도메인 기능이 포함된, 기존 코드를 액터 모델로 전환할 필요가 없으며 액터는 대용량 처리 메시지를 충분히 커버함으로 실시간 측정및/모니터링 용도로 액터를 기존코드에 간단하게 추가할수 있습니다. MonitorActor.Tell(value); 와같이 이벤트가 발생하는 시점에서 단순하게 Tell을 하는것만으로 고성능 비동기 처리가 가능하기 때문입니다. |
...
대시보드로 측정하기
윈도우 성능 프러파일러
표: 시간별로 메시지처리가 증가함에따라 CPU변화량을 같이 비교할수 있습니다. (메시징 배율 0.0001,10000을곱하면 메시지수) |
---|
표:TPS와 유실이 없는지 실시간으로 확인이 가능합니다. |
...
윈도우 성능 프로파일러가 주로 단일장비 스케일업을 위해 튜닝할때 사용된다라고 하면
통합된 수집가능한 데시보드툴에서는 대시보드툴에서는 각각의 인스턴스가 자신의 카운팅을 측정하여 보고하고, 통합 데시보드에서는 대시보드에서는 분산된 어플리케이션 객체에대한 총합을 측정할수 있습니다.
...