SlideShare a Scribd company logo
1 of 47
Metatron Anomaly
powered by
T A B L E O F C O N T E N T S
Metatron Anomaly
01. Intro
02. Metatron Anomaly
03. Feature
04. Conclusion
01. Intro
What is Anomaly
For System Monitoring
Why we made it
Machine Learning Scientist
Tagged Data Learning
System
But,,,,
still hard !!!!
Complex Data
Solution
So,we made Metatron Anomaly
Easy
Machine
Learning
Anomaly
Management
Big Data
Analyze
02. Metatron Anomaly
Visualize
Alarm
Report
Analytics
Data Flow
Machine Learning
Anomaly Management
Automated Anomaly Detection
Anomaly Analytics, Alarm
Key Concept
Our Menu
알람 룰 만들기 Create Alarm Rule
알람 리스트
Alarm list
알람 룰 리스트
Alarm Rule list
Alarm Rule
Detail
Alarm Detail
통계
Statistics
모든 알람의 요약 및
통계를 보고 빠르게
전체 상황을 파악
알람을 확인&검색
하거나 각 알람 별
디테일을 확인
만들어진 알람 룰의
디테일을 확인하거나
룰을 수정
03. Feature
Feature1.
Machine Learning
TO-BE
Why do weneed machine learning?
많은 기기의 다양한 상태를 이런식으로 관
리하기가 어려워 machine learning을 통해
서 이를 분석하고 그에 따른 적절한 모델을
적용함으써보다 쉽고 빠르게 더 상세한 감
시를 할 수 있음
AS-IS
기준 범위를 지정하고 그 범위를 벗
어나면 이상 상태로 판단하지만, 좀
더 상세한 감시가 필요해짐에 따라
시간을 분할하여 이를 각각 범위를
설정하여 판단함
설비의 상태나 환경이 일부 변할때
마다 이러한 일이 반복적으로 일어나
게 됨
TO-BEAS-IS
Why do we need machine learning?
큰 문제가 발생한 이후에 그에 대한
대처를 수행함으로써 실제로 문제가
발생하게 됨.
이러한 문제의 발생 자체를 막고자
하는 니즈가 있음
상세한 분석을 통해 데이타의 오류 형태
등으로 전조현상을 발견하고, 미리 오류를
발견함으로 선재적 대응이 가능함
How machine learning worksin
1. 정답 없이 사용가능한 Unsupervised Learning 사용
3. All-in-one solution 제공
2.Druid를 사용하여 분석환경을 별개로 구성할 필요없음
4.사이언티스트가 없이도 시스템에서 자동 모델 제안
Scientist
Select
model
Predict
evaluati
on
Anomaly
score
Anomaly
detect
Bias
MAD
MAPE
MSE
SAE
MAE
SMAPE
MAPE
MASE
MAPEE
NaiveForecastingModel
MovingAverageModel
WeightedMovingAverageModel
RegressionModel
MultipleLinearRegressionModel
PolynomialRegressionModel
SimpleExponentialSmoothingModel
DoubleExponentialSmoothingModel
TripleExponentialSmoothingModel
OlympicModel
SpectralSmoother
Abnormal Predicted Model Create Process (UnsupervisedLearning)
Predict
train
Predict
train
Predict
train
Predict
train
과거 데이터로 11종 예측 모델 적용
(지속적으로 추가 예정)
가장 오차가 적은
모델 선정
오차를
수치화 함
선정된 모델로
현재 데이터로 예측
스레시홀드를 넘을 때
알람 발생
재학습(Re-Learning)
데이터가 달라져서
모델 정확도가 떨어지는 현상이 발생
재학습이 필요한 이유 Data Science Lifecycle
데이터 확인 → 학습 (machine learning) → 이상 탐지 → 원인 분석 → Feedback
재학습 (machine learning) → 보다 정확한 이상 탐지
Extension
Druid
Extension
Metatron
Flow
Zeppelin
3가지 알고리즘 적용방식
Feature2.
Anomaly Management
Anomaly Management
UI
Alarm detail & Report
Alarm Statistics
Alarm Search Alarm rule detail
Alarm Create
04. Conclusion
Use case
case 1
각 measure 별로 독립적으로 발생함.
각 value 별로 training 하고 예측을 수행함으로써
이상 징후를 발견한다.
case 2 :
각 measure가 같은 패턴으로 발생함.
같은 measure끼리 비교하여 차이점을 찾음으로써
이상 징후를 발견한다.
Metatron Architecture
Anomaly Integrator MDM
Application
Tool
Solution
Target MarketingMachine VisionAPM
DashBoard/Chart
Workbench – SQL Explorer
Embedded Analytics
Data Prep. – Data Transformer
Workspace
Data Lineage
MDM
[별첨] Metatron Discovery
Metatron Discovery 연계로 인한 장점
Metatron Anomaly의 장점
Roadmap
The End
시스템 구조
Client Server Druid
Alarm
rule page
Query
generate
Data
process
Alarm
notice
Predict
train
Predict
evaluatio
n
Anomaly
score
Anomaly
detect
Alarm
schedule
Data
process
Alarm
page
Alarm
History
Data
process
1 2
34
1
2
3
1
4
2
3
Predict
evaluatio
nModel
manage
Select
model
외부 분석 연계(notebook)
Client Server Druid
Alarm
rule page
Query
generate
Data
process
Alarm
schedule
1 2
36
zeppelin
Predict
training
Anomaly
detect
Model
manage
4
5
Predict
evaluatio
n
외부 분석 연계(metatron-stream)
Client Server
Metatron-
stream
Alarm
rule page
Query
generate
Data
process
Alarm
notice
Predict
training
Predict
evaluatio
n
Anomaly
score
Anomaly
detect
Alarm
schedule
Data
process
Alarm
page
Alarm
History
Data
process
1 2
34
1
2
3
1
4
2
3
Model
manage
Druid
Predict
evaluati
on
Alarm Rule Create Process
Select Data Source Select Measure Auto Model training & Recommend
Adjust Alarm Threshold Complete Alarm Rule
Metatron Anomaly -DRUID
powered by
시스템 구조
Client Server Druid
Alarm
rule page
Data
process
Alarm
notice
Predict
train
Predict
evaluatio
n
Anomaly
score
Anomaly
detect
Alarm
schedule
Data
process
Alarm
page
Alarm
History
Data
process
1 2
34
1
2
3
1
4
2
3
Predict
evaluatio
nModel
manage
Recommend
model
Machine learning algorithm call
Metatron anomaly
Druid
extension/druid-egads
egads openforecast
Add anomaly extension
1. Extension 폴터에 파일을 넣고
2. druid.extensions.loadList에 druid-egads를 추가
Processchange for alarm
Druid Egads
Predict
train
Predict
evaluatio
n
Target
Data
1
2
3Predict
Data
Druid Egads
Predict
train
Training
Data
1
2
3*
4*
Predict
evaluatio
nPredict
Data
Evaluate
Data
Trained
Model
Druid anomaly query
{
"queryType" : "groupBy",
"dataSource" : "passengers_01",
"virtualColumns": [
{
"type": "expr",
"outputName": "user_defined.basetime",
"expression": "TIMESTAMP( time_format( __t
ime, 'yyyy-MM'), 'yyyy-MM' ) "
}
],
"dimensions" : [
{
"type": "default",
"dimension": "user_defined.basetime",
"outputName": "basetime"
}
],
"limitSpec" : {
"type" : "default",
"limit" : 1000,
"columns": [
{
"dimension": "basetime",
"direction": "ascending",
"dimensionOrder": "alphanumeric"
}
]
},
"granularity" : "MONTH",
"aggregations" : [
{
"type": "sum",
"name": "value",
"fieldName": "Value",
"inputType": "double"
}
],
"context" : {
"postProcessing" :
{
"type": "list",
"processors": [
{
"type": "rowToMap",
"timestampColumn": "__time"
},
{
"type": "anomaly",
"timestampColumn": "basetime",
"metricColumn": "value",
"predictColumn": "predict",
"anomalyColumn": "isAnomaly",
"tsModel": "TripleExponentialSmoothingMo
del",
"tsModelColumn": "appliedModel",
"adModel": "ExtremeLowDensityModel",
"parameters":
{
"THRESHOLD": "mape#20"
},
"timeGranularity": "MONTH"
}
]
}
},
"intervals" : [ "1949-01-01/1970-01-01" ]
}
"queryType" : "groupBy",
"type": "anomaly",
"tsModel": "TripleExponen
tialSmoothingModel"
Druid anomaly query return
[ {
"basetime" : 2493072000000,
"value" : 112.0,
"__time" : "1949-01-01T00:00:00.000Z",
"predict" : 112.0,
}, {
"basetime" : 2495750400000,
"value" : 118.0,
"__time" : "1949-02-01T00:00:00.000Z",
"predict" : -1034.9606,
"isAnomaly" : true
}, {
"basetime" : 2498169600000,
"value" : 132.0,
"__time" : "1949-03-01T00:00:00.000Z",
"predict" : -1145.7456,
"isAnomaly" : true
}, {
"basetime" : 2500848000000,
"value" : 129.0,
"__time" : "1949-04-01T00:00:00.000Z",
"predict" : -1096.7128,
"isAnomaly" : true
"basetime" : 2495750400000,
"value" : 118.0,
"__time" : "1949-02-01T00:00:00.000Z",
"predict" : -1034.9606,
"isAnomaly" : true
Druid anomaly training query
{
"queryType" : "groupBy",
"dataSource" : "passengers_01",
"virtualColumns": [
{
"type": "expr",
"outputName": "user_defined.basetime",
"expression": "TIMESTAMP( time_format( __t
ime, 'yyyy-MM'), 'yyyy-MM' ) "
}
],
"dimensions" : [
{
"type": "default",
"dimension": "user_defined.basetime",
"outputName": "basetime"
}
],
"limitSpec" : {
"type" : "default",
"limit" : 1000,
"columns": [
{
"dimension": "basetime",
"direction": "ascending",
"dimensionOrder": "alphanumeric"
}
]
},
"granularity" : "MONTH",
"aggregations" : [
{
"type": "sum",
"name": "value",
"fieldName": "Value",
"inputType": "double"
}
],
"context" : {
"postProcessing" :
{
"type": "list",
"processors": [
{
"type": "rowToMap",
"timestampColumn": "__time"
},
{
"type": "anomaly",
"runType": "training",
"timestampColumn": "basetime",
"metricColumn": "value",
"predictColumn": "predict",
"anomalyColumn": "isAnomaly",
"tsModel": "TripleExponentialSmoothingMo
del",
"tsModelColumn": "appliedModel",
"adModel": "ExtremeLowDensityModel",
"parameters":
{
"THRESHOLD": "mape#20"
},
"timeGranularity": "MONTH"
}
]
}
},
"intervals" : [ "1949-01-01/1970-01-01" ]
}
"queryType" : "groupBy",
"type": "anomaly",
"tsModel": "TripleExponen
tialSmoothingModel"
"runType": "training"
Druid anomaly training query return
[ {
"basetime" : 2493072000000,
"value" : 112.0,
"__time" : "1949-01-01T00:00:00.000Z",
"predict" : 112.0,
"appliedModel" : {
"period" : 12,
"startseasonal" :
[ 0.8598057626467811, 0.8546643735355421, 0.9890938674177445, 0.9581315969670006, 0.963956303602938, 1.100
7168862639305, 1.2300053054336821, 1.2338619760370966, 1.0820471920359958, 0.9491716457381539, 0.833161634
6697758, 0.9453834556513592 ],
"alpha" : 1.0,
"name" : "TripleExponentialSmoothingModel",
"startbase" : 126.66666666666667,
"range" : 455.0,
"starttrend" : 1.0833333333333333,
"type" : "Forecast",
"beta" : 0.9999999999999999,
"gamma" : 0.0
}
}, {
"basetime" : 2495750400000,
"value" : 118.0,
"__time" : "1949-02-01T00:00:00.000Z",
"predict" : -1034.9606,
"isAnomaly" : true
}, {
"basetime" : 2498169600000,
"value" : 132.0,
"__time" : "1949-03-01T00:00:00.000Z",
"predict" : -1145.7456,
"isAnomaly" : true
}, {
"basetime" : 2500848000000,
"value" : 129.0,
"__time" : "1949-04-01T00:00:00.000Z",
"predict" : -1096.7128,
"isAnomaly" : true
},
"name" : "TripleExponentialSmoothingModel",
"period" : 12,
"startbase" : 126.6666,
"starttrend" : 1.08333,
"startseasonal" :[……],
"alpha" : 1.0,
"beta" : 0.999999,
"gamma" : 0.0,
Druid anomaly evaluate query
{
"queryType" : "groupBy",
"dataSource" : "passengers_01",
"virtualColumns": [
{
"type": "expr",
"outputName": "user_defined.basetime",
"expression": "TIMESTAMP( time_format( __t
ime, 'yyyy-MM'), 'yyyy-MM' ) "
}
],
"dimensions" : [
{
"type": "default",
"dimension": "user_defined.basetime",
"outputName": "basetime"
}
],
"limitSpec" : {
"type" : "default",
"limit" : 1000,
"columns": [
{
"dimension": "basetime",
"direction": "ascending",
"dimensionOrder": "alphanumeric"
}
]
},
"granularity" : "MONTH",
"aggregations" : [
{
"type": "sum",
"name": "value",
"fieldName": "Value",
"inputType": "double"
}
],
"context" : {
"postProcessing" :
{
"type": "list",
"processors": [
{
"type": "rowToMap",
"timestampColumn": "__time"
},
{
"type": "anomaly",
"runType": "evaluate",
"timestampColumn": "basetime",
"metricColumn": "value",
"predictColumn": "predict",
"anomalyColumn": "isAnomaly",
"tsModel": "TripleExponentialSmoothingModel",
"tsModelColumn": "appliedModel",
"adModel": "ExtremeLowDensityModel",
"parameters":
{
"period" : 12,
"startseasonal" :
[ 0.8598057626467811, 0.8546643735355421, 0.989093867
4177445, 0.9581315969670006, 0.963956303602938, 1.100
7168862639305, 1.2300053054336821, 1.23386197603709
66, 1.0820471920359958, 0.9491716457381539, 0.8331616
346697758, 0.9453834556513592 ],
"alpha" : 1.0,
"name" : "TripleExponentialSmoothingModel",
"startbase" : 126.66666666666667,
"starttrend" : 1.0833333333333333,
"type" : "Forecast",
"beta" : 0.9999999999999999,
"gamma" : 0.0,
"THRESHOLD": "mape#20"
},
"timeGranularity": "MONTH"
}
]
}
},
"intervals" : [ "1949-01-01/1970-01-01" ]
}
"queryType" : "groupBy",
"type": "anomaly",
"tsModel": "TripleExponen
tialSmoothingModel"
"runType": " evaluate "
"name" : "TripleExponentialSmoothingModel",
"period" : 12,
"startbase" : 126.6666,
"starttrend" : 1.08333,
"startseasonal" :[……],
"alpha" : 1.0,
"beta" : 0.999999,
"gamma" : 0.0,
Druid anomaly evaluate query return
[ {
"basetime" : 2493072000000,
"value" : 112.0,
"__time" : "1949-01-01T00:00:00.000Z",
"predict" : 112.0,
}, {
"basetime" : 2495750400000,
"value" : 118.0,
"__time" : "1949-02-01T00:00:00.000Z",
"predict" : -1034.9606,
"isAnomaly" : true
}, {
"basetime" : 2498169600000,
"value" : 132.0,
"__time" : "1949-03-01T00:00:00.000Z",
"predict" : -1145.7456,
"isAnomaly" : true
}, {
"basetime" : 2500848000000,
"value" : 129.0,
"__time" : "1949-04-01T00:00:00.000Z",
"predict" : -1096.7128,
"isAnomaly" : true
"basetime" : 2495750400000,
"value" : 118.0,
"__time" : "1949-02-01T00:00:00.000Z",
"predict" : -1034.9606,
"isAnomaly" : true
deploy
broker
Druid
Historica
l
Historica
l
Historica
l
Historica
l
discovery
metatron
deploy
broker
Druid
Historica
l
Historica
l
Historica
l
Historica
l
discovery
metatron
broker
extension
egads
anomaly
Open source

More Related Content

Similar to [Metatron Discovery ex-pack] Anomaly Detection

통신사 고객 이탈분석
통신사 고객 이탈분석통신사 고객 이탈분석
통신사 고객 이탈분석DataScienceLab
 
Machine Learning with Apache Spark and Zeppelin
Machine Learning with Apache Spark and ZeppelinMachine Learning with Apache Spark and Zeppelin
Machine Learning with Apache Spark and ZeppelinDataya Nolja
 
인공지능 식별추적시스템 성능 검증 평가 사례
인공지능 식별추적시스템 성능 검증 평가 사례 인공지능 식별추적시스템 성능 검증 평가 사례
인공지능 식별추적시스템 성능 검증 평가 사례 IMQA
 
인공지능 식별추적시스템 실증랩 구축및 운영 - 평가모델 고도화
인공지능 식별추적시스템 실증랩 구축및 운영 - 평가모델 고도화인공지능 식별추적시스템 실증랩 구축및 운영 - 평가모델 고도화
인공지능 식별추적시스템 실증랩 구축및 운영 - 평가모델 고도화YoungSu Son
 
Prometheus Project Journey
Prometheus Project JourneyPrometheus Project Journey
Prometheus Project JourneyJinwoong Kim
 
머신러닝(딥러닝 요약)
머신러닝(딥러닝 요약)머신러닝(딥러닝 요약)
머신러닝(딥러닝 요약)Byung-han Lee
 
Pycon2019 django query_optimization
Pycon2019 django query_optimizationPycon2019 django query_optimization
Pycon2019 django query_optimizationSoyoungYoon11
 
Pycon presentation final
Pycon presentation finalPycon presentation final
Pycon presentation finalSoyoungYoon11
 
2. KSB 인공지능 기계 고장진단 솔루션.pdf
2. KSB 인공지능 기계 고장진단 솔루션.pdf2. KSB 인공지능 기계 고장진단 솔루션.pdf
2. KSB 인공지능 기계 고장진단 솔루션.pdfssuserde0b2d
 
Titanic kaggle competition
Titanic kaggle competitionTitanic kaggle competition
Titanic kaggle competitionjdo
 
K ems 20060428
K ems 20060428K ems 20060428
K ems 20060428상진 정
 
AI/ML re:invent 2019 recap at Delivery Hero Korea
AI/ML re:invent 2019 recap at Delivery Hero KoreaAI/ML re:invent 2019 recap at Delivery Hero Korea
AI/ML re:invent 2019 recap at Delivery Hero KoreaSungmin Kim
 
기계학습 현재와미래 Pdf
기계학습 현재와미래 Pdf기계학습 현재와미래 Pdf
기계학습 현재와미래 Pdf효근 윤
 
HR Analytics - 퇴직가능성예측모델
HR Analytics - 퇴직가능성예측모델HR Analytics - 퇴직가능성예측모델
HR Analytics - 퇴직가능성예측모델Seong-Bok Lee
 
AWS 기계 학습 솔루션을 활용한 온라인 사기·부정거래 감지 – 서지혜 AWS 스타트업 AIML 스페셜리스트:: AWS Cloud Week...
AWS 기계 학습 솔루션을 활용한 온라인 사기·부정거래 감지 – 서지혜 AWS 스타트업 AIML 스페셜리스트:: AWS Cloud Week...AWS 기계 학습 솔루션을 활용한 온라인 사기·부정거래 감지 – 서지혜 AWS 스타트업 AIML 스페셜리스트:: AWS Cloud Week...
AWS 기계 학습 솔루션을 활용한 온라인 사기·부정거래 감지 – 서지혜 AWS 스타트업 AIML 스페셜리스트:: AWS Cloud Week...Amazon Web Services Korea
 
메인프레임모니터링자동화 애플트리랩
메인프레임모니터링자동화 애플트리랩메인프레임모니터링자동화 애플트리랩
메인프레임모니터링자동화 애플트리랩JaeWoo Wie
 
Workshop 210417 dhlee
Workshop 210417 dhleeWorkshop 210417 dhlee
Workshop 210417 dhleeDongheon Lee
 
웹서버 부하테스트 실전 노하우
웹서버 부하테스트 실전 노하우웹서버 부하테스트 실전 노하우
웹서버 부하테스트 실전 노하우IMQA
 
실전 서버 부하테스트 노하우
실전 서버 부하테스트 노하우 실전 서버 부하테스트 노하우
실전 서버 부하테스트 노하우 YoungSu Son
 

Similar to [Metatron Discovery ex-pack] Anomaly Detection (20)

통신사 고객 이탈분석
통신사 고객 이탈분석통신사 고객 이탈분석
통신사 고객 이탈분석
 
Machine Learning with Apache Spark and Zeppelin
Machine Learning with Apache Spark and ZeppelinMachine Learning with Apache Spark and Zeppelin
Machine Learning with Apache Spark and Zeppelin
 
인공지능 식별추적시스템 성능 검증 평가 사례
인공지능 식별추적시스템 성능 검증 평가 사례 인공지능 식별추적시스템 성능 검증 평가 사례
인공지능 식별추적시스템 성능 검증 평가 사례
 
인공지능 식별추적시스템 실증랩 구축및 운영 - 평가모델 고도화
인공지능 식별추적시스템 실증랩 구축및 운영 - 평가모델 고도화인공지능 식별추적시스템 실증랩 구축및 운영 - 평가모델 고도화
인공지능 식별추적시스템 실증랩 구축및 운영 - 평가모델 고도화
 
분석6기 4조
분석6기 4조분석6기 4조
분석6기 4조
 
Prometheus Project Journey
Prometheus Project JourneyPrometheus Project Journey
Prometheus Project Journey
 
머신러닝(딥러닝 요약)
머신러닝(딥러닝 요약)머신러닝(딥러닝 요약)
머신러닝(딥러닝 요약)
 
Pycon2019 django query_optimization
Pycon2019 django query_optimizationPycon2019 django query_optimization
Pycon2019 django query_optimization
 
Pycon presentation final
Pycon presentation finalPycon presentation final
Pycon presentation final
 
2. KSB 인공지능 기계 고장진단 솔루션.pdf
2. KSB 인공지능 기계 고장진단 솔루션.pdf2. KSB 인공지능 기계 고장진단 솔루션.pdf
2. KSB 인공지능 기계 고장진단 솔루션.pdf
 
Titanic kaggle competition
Titanic kaggle competitionTitanic kaggle competition
Titanic kaggle competition
 
K ems 20060428
K ems 20060428K ems 20060428
K ems 20060428
 
AI/ML re:invent 2019 recap at Delivery Hero Korea
AI/ML re:invent 2019 recap at Delivery Hero KoreaAI/ML re:invent 2019 recap at Delivery Hero Korea
AI/ML re:invent 2019 recap at Delivery Hero Korea
 
기계학습 현재와미래 Pdf
기계학습 현재와미래 Pdf기계학습 현재와미래 Pdf
기계학습 현재와미래 Pdf
 
HR Analytics - 퇴직가능성예측모델
HR Analytics - 퇴직가능성예측모델HR Analytics - 퇴직가능성예측모델
HR Analytics - 퇴직가능성예측모델
 
AWS 기계 학습 솔루션을 활용한 온라인 사기·부정거래 감지 – 서지혜 AWS 스타트업 AIML 스페셜리스트:: AWS Cloud Week...
AWS 기계 학습 솔루션을 활용한 온라인 사기·부정거래 감지 – 서지혜 AWS 스타트업 AIML 스페셜리스트:: AWS Cloud Week...AWS 기계 학습 솔루션을 활용한 온라인 사기·부정거래 감지 – 서지혜 AWS 스타트업 AIML 스페셜리스트:: AWS Cloud Week...
AWS 기계 학습 솔루션을 활용한 온라인 사기·부정거래 감지 – 서지혜 AWS 스타트업 AIML 스페셜리스트:: AWS Cloud Week...
 
메인프레임모니터링자동화 애플트리랩
메인프레임모니터링자동화 애플트리랩메인프레임모니터링자동화 애플트리랩
메인프레임모니터링자동화 애플트리랩
 
Workshop 210417 dhlee
Workshop 210417 dhleeWorkshop 210417 dhlee
Workshop 210417 dhlee
 
웹서버 부하테스트 실전 노하우
웹서버 부하테스트 실전 노하우웹서버 부하테스트 실전 노하우
웹서버 부하테스트 실전 노하우
 
실전 서버 부하테스트 노하우
실전 서버 부하테스트 노하우 실전 서버 부하테스트 노하우
실전 서버 부하테스트 노하우
 

[Metatron Discovery ex-pack] Anomaly Detection

  • 2. T A B L E O F C O N T E N T S Metatron Anomaly 01. Intro 02. Metatron Anomaly 03. Feature 04. Conclusion
  • 4. What is Anomaly For System Monitoring
  • 5. Why we made it Machine Learning Scientist Tagged Data Learning System But,,,, still hard !!!! Complex Data Solution
  • 6. So,we made Metatron Anomaly Easy Machine Learning Anomaly Management Big Data Analyze
  • 8. Visualize Alarm Report Analytics Data Flow Machine Learning Anomaly Management Automated Anomaly Detection Anomaly Analytics, Alarm
  • 10. Our Menu 알람 룰 만들기 Create Alarm Rule 알람 리스트 Alarm list 알람 룰 리스트 Alarm Rule list Alarm Rule Detail Alarm Detail 통계 Statistics 모든 알람의 요약 및 통계를 보고 빠르게 전체 상황을 파악 알람을 확인&검색 하거나 각 알람 별 디테일을 확인 만들어진 알람 룰의 디테일을 확인하거나 룰을 수정
  • 13. TO-BE Why do weneed machine learning? 많은 기기의 다양한 상태를 이런식으로 관 리하기가 어려워 machine learning을 통해 서 이를 분석하고 그에 따른 적절한 모델을 적용함으써보다 쉽고 빠르게 더 상세한 감 시를 할 수 있음 AS-IS 기준 범위를 지정하고 그 범위를 벗 어나면 이상 상태로 판단하지만, 좀 더 상세한 감시가 필요해짐에 따라 시간을 분할하여 이를 각각 범위를 설정하여 판단함 설비의 상태나 환경이 일부 변할때 마다 이러한 일이 반복적으로 일어나 게 됨
  • 14. TO-BEAS-IS Why do we need machine learning? 큰 문제가 발생한 이후에 그에 대한 대처를 수행함으로써 실제로 문제가 발생하게 됨. 이러한 문제의 발생 자체를 막고자 하는 니즈가 있음 상세한 분석을 통해 데이타의 오류 형태 등으로 전조현상을 발견하고, 미리 오류를 발견함으로 선재적 대응이 가능함
  • 15. How machine learning worksin 1. 정답 없이 사용가능한 Unsupervised Learning 사용 3. All-in-one solution 제공 2.Druid를 사용하여 분석환경을 별개로 구성할 필요없음 4.사이언티스트가 없이도 시스템에서 자동 모델 제안 Scientist
  • 16. Select model Predict evaluati on Anomaly score Anomaly detect Bias MAD MAPE MSE SAE MAE SMAPE MAPE MASE MAPEE NaiveForecastingModel MovingAverageModel WeightedMovingAverageModel RegressionModel MultipleLinearRegressionModel PolynomialRegressionModel SimpleExponentialSmoothingModel DoubleExponentialSmoothingModel TripleExponentialSmoothingModel OlympicModel SpectralSmoother Abnormal Predicted Model Create Process (UnsupervisedLearning) Predict train Predict train Predict train Predict train 과거 데이터로 11종 예측 모델 적용 (지속적으로 추가 예정) 가장 오차가 적은 모델 선정 오차를 수치화 함 선정된 모델로 현재 데이터로 예측 스레시홀드를 넘을 때 알람 발생
  • 17. 재학습(Re-Learning) 데이터가 달라져서 모델 정확도가 떨어지는 현상이 발생 재학습이 필요한 이유 Data Science Lifecycle 데이터 확인 → 학습 (machine learning) → 이상 탐지 → 원인 분석 → Feedback 재학습 (machine learning) → 보다 정확한 이상 탐지
  • 21. UI Alarm detail & Report Alarm Statistics Alarm Search Alarm rule detail Alarm Create
  • 23. Use case case 1 각 measure 별로 독립적으로 발생함. 각 value 별로 training 하고 예측을 수행함으로써 이상 징후를 발견한다. case 2 : 각 measure가 같은 패턴으로 발생함. 같은 measure끼리 비교하여 차이점을 찾음으로써 이상 징후를 발견한다.
  • 24. Metatron Architecture Anomaly Integrator MDM Application Tool Solution Target MarketingMachine VisionAPM
  • 25. DashBoard/Chart Workbench – SQL Explorer Embedded Analytics Data Prep. – Data Transformer Workspace Data Lineage MDM [별첨] Metatron Discovery
  • 30. 시스템 구조 Client Server Druid Alarm rule page Query generate Data process Alarm notice Predict train Predict evaluatio n Anomaly score Anomaly detect Alarm schedule Data process Alarm page Alarm History Data process 1 2 34 1 2 3 1 4 2 3 Predict evaluatio nModel manage Select model
  • 31. 외부 분석 연계(notebook) Client Server Druid Alarm rule page Query generate Data process Alarm schedule 1 2 36 zeppelin Predict training Anomaly detect Model manage 4 5 Predict evaluatio n
  • 32. 외부 분석 연계(metatron-stream) Client Server Metatron- stream Alarm rule page Query generate Data process Alarm notice Predict training Predict evaluatio n Anomaly score Anomaly detect Alarm schedule Data process Alarm page Alarm History Data process 1 2 34 1 2 3 1 4 2 3 Model manage Druid
  • 33. Predict evaluati on Alarm Rule Create Process Select Data Source Select Measure Auto Model training & Recommend Adjust Alarm Threshold Complete Alarm Rule
  • 35. 시스템 구조 Client Server Druid Alarm rule page Data process Alarm notice Predict train Predict evaluatio n Anomaly score Anomaly detect Alarm schedule Data process Alarm page Alarm History Data process 1 2 34 1 2 3 1 4 2 3 Predict evaluatio nModel manage Recommend model
  • 36. Machine learning algorithm call Metatron anomaly Druid extension/druid-egads egads openforecast
  • 37. Add anomaly extension 1. Extension 폴터에 파일을 넣고 2. druid.extensions.loadList에 druid-egads를 추가
  • 38. Processchange for alarm Druid Egads Predict train Predict evaluatio n Target Data 1 2 3Predict Data Druid Egads Predict train Training Data 1 2 3* 4* Predict evaluatio nPredict Data Evaluate Data Trained Model
  • 39. Druid anomaly query { "queryType" : "groupBy", "dataSource" : "passengers_01", "virtualColumns": [ { "type": "expr", "outputName": "user_defined.basetime", "expression": "TIMESTAMP( time_format( __t ime, 'yyyy-MM'), 'yyyy-MM' ) " } ], "dimensions" : [ { "type": "default", "dimension": "user_defined.basetime", "outputName": "basetime" } ], "limitSpec" : { "type" : "default", "limit" : 1000, "columns": [ { "dimension": "basetime", "direction": "ascending", "dimensionOrder": "alphanumeric" } ] }, "granularity" : "MONTH", "aggregations" : [ { "type": "sum", "name": "value", "fieldName": "Value", "inputType": "double" } ], "context" : { "postProcessing" : { "type": "list", "processors": [ { "type": "rowToMap", "timestampColumn": "__time" }, { "type": "anomaly", "timestampColumn": "basetime", "metricColumn": "value", "predictColumn": "predict", "anomalyColumn": "isAnomaly", "tsModel": "TripleExponentialSmoothingMo del", "tsModelColumn": "appliedModel", "adModel": "ExtremeLowDensityModel", "parameters": { "THRESHOLD": "mape#20" }, "timeGranularity": "MONTH" } ] } }, "intervals" : [ "1949-01-01/1970-01-01" ] } "queryType" : "groupBy", "type": "anomaly", "tsModel": "TripleExponen tialSmoothingModel"
  • 40. Druid anomaly query return [ { "basetime" : 2493072000000, "value" : 112.0, "__time" : "1949-01-01T00:00:00.000Z", "predict" : 112.0, }, { "basetime" : 2495750400000, "value" : 118.0, "__time" : "1949-02-01T00:00:00.000Z", "predict" : -1034.9606, "isAnomaly" : true }, { "basetime" : 2498169600000, "value" : 132.0, "__time" : "1949-03-01T00:00:00.000Z", "predict" : -1145.7456, "isAnomaly" : true }, { "basetime" : 2500848000000, "value" : 129.0, "__time" : "1949-04-01T00:00:00.000Z", "predict" : -1096.7128, "isAnomaly" : true "basetime" : 2495750400000, "value" : 118.0, "__time" : "1949-02-01T00:00:00.000Z", "predict" : -1034.9606, "isAnomaly" : true
  • 41. Druid anomaly training query { "queryType" : "groupBy", "dataSource" : "passengers_01", "virtualColumns": [ { "type": "expr", "outputName": "user_defined.basetime", "expression": "TIMESTAMP( time_format( __t ime, 'yyyy-MM'), 'yyyy-MM' ) " } ], "dimensions" : [ { "type": "default", "dimension": "user_defined.basetime", "outputName": "basetime" } ], "limitSpec" : { "type" : "default", "limit" : 1000, "columns": [ { "dimension": "basetime", "direction": "ascending", "dimensionOrder": "alphanumeric" } ] }, "granularity" : "MONTH", "aggregations" : [ { "type": "sum", "name": "value", "fieldName": "Value", "inputType": "double" } ], "context" : { "postProcessing" : { "type": "list", "processors": [ { "type": "rowToMap", "timestampColumn": "__time" }, { "type": "anomaly", "runType": "training", "timestampColumn": "basetime", "metricColumn": "value", "predictColumn": "predict", "anomalyColumn": "isAnomaly", "tsModel": "TripleExponentialSmoothingMo del", "tsModelColumn": "appliedModel", "adModel": "ExtremeLowDensityModel", "parameters": { "THRESHOLD": "mape#20" }, "timeGranularity": "MONTH" } ] } }, "intervals" : [ "1949-01-01/1970-01-01" ] } "queryType" : "groupBy", "type": "anomaly", "tsModel": "TripleExponen tialSmoothingModel" "runType": "training"
  • 42. Druid anomaly training query return [ { "basetime" : 2493072000000, "value" : 112.0, "__time" : "1949-01-01T00:00:00.000Z", "predict" : 112.0, "appliedModel" : { "period" : 12, "startseasonal" : [ 0.8598057626467811, 0.8546643735355421, 0.9890938674177445, 0.9581315969670006, 0.963956303602938, 1.100 7168862639305, 1.2300053054336821, 1.2338619760370966, 1.0820471920359958, 0.9491716457381539, 0.833161634 6697758, 0.9453834556513592 ], "alpha" : 1.0, "name" : "TripleExponentialSmoothingModel", "startbase" : 126.66666666666667, "range" : 455.0, "starttrend" : 1.0833333333333333, "type" : "Forecast", "beta" : 0.9999999999999999, "gamma" : 0.0 } }, { "basetime" : 2495750400000, "value" : 118.0, "__time" : "1949-02-01T00:00:00.000Z", "predict" : -1034.9606, "isAnomaly" : true }, { "basetime" : 2498169600000, "value" : 132.0, "__time" : "1949-03-01T00:00:00.000Z", "predict" : -1145.7456, "isAnomaly" : true }, { "basetime" : 2500848000000, "value" : 129.0, "__time" : "1949-04-01T00:00:00.000Z", "predict" : -1096.7128, "isAnomaly" : true }, "name" : "TripleExponentialSmoothingModel", "period" : 12, "startbase" : 126.6666, "starttrend" : 1.08333, "startseasonal" :[……], "alpha" : 1.0, "beta" : 0.999999, "gamma" : 0.0,
  • 43. Druid anomaly evaluate query { "queryType" : "groupBy", "dataSource" : "passengers_01", "virtualColumns": [ { "type": "expr", "outputName": "user_defined.basetime", "expression": "TIMESTAMP( time_format( __t ime, 'yyyy-MM'), 'yyyy-MM' ) " } ], "dimensions" : [ { "type": "default", "dimension": "user_defined.basetime", "outputName": "basetime" } ], "limitSpec" : { "type" : "default", "limit" : 1000, "columns": [ { "dimension": "basetime", "direction": "ascending", "dimensionOrder": "alphanumeric" } ] }, "granularity" : "MONTH", "aggregations" : [ { "type": "sum", "name": "value", "fieldName": "Value", "inputType": "double" } ], "context" : { "postProcessing" : { "type": "list", "processors": [ { "type": "rowToMap", "timestampColumn": "__time" }, { "type": "anomaly", "runType": "evaluate", "timestampColumn": "basetime", "metricColumn": "value", "predictColumn": "predict", "anomalyColumn": "isAnomaly", "tsModel": "TripleExponentialSmoothingModel", "tsModelColumn": "appliedModel", "adModel": "ExtremeLowDensityModel", "parameters": { "period" : 12, "startseasonal" : [ 0.8598057626467811, 0.8546643735355421, 0.989093867 4177445, 0.9581315969670006, 0.963956303602938, 1.100 7168862639305, 1.2300053054336821, 1.23386197603709 66, 1.0820471920359958, 0.9491716457381539, 0.8331616 346697758, 0.9453834556513592 ], "alpha" : 1.0, "name" : "TripleExponentialSmoothingModel", "startbase" : 126.66666666666667, "starttrend" : 1.0833333333333333, "type" : "Forecast", "beta" : 0.9999999999999999, "gamma" : 0.0, "THRESHOLD": "mape#20" }, "timeGranularity": "MONTH" } ] } }, "intervals" : [ "1949-01-01/1970-01-01" ] } "queryType" : "groupBy", "type": "anomaly", "tsModel": "TripleExponen tialSmoothingModel" "runType": " evaluate " "name" : "TripleExponentialSmoothingModel", "period" : 12, "startbase" : 126.6666, "starttrend" : 1.08333, "startseasonal" :[……], "alpha" : 1.0, "beta" : 0.999999, "gamma" : 0.0,
  • 44. Druid anomaly evaluate query return [ { "basetime" : 2493072000000, "value" : 112.0, "__time" : "1949-01-01T00:00:00.000Z", "predict" : 112.0, }, { "basetime" : 2495750400000, "value" : 118.0, "__time" : "1949-02-01T00:00:00.000Z", "predict" : -1034.9606, "isAnomaly" : true }, { "basetime" : 2498169600000, "value" : 132.0, "__time" : "1949-03-01T00:00:00.000Z", "predict" : -1145.7456, "isAnomaly" : true }, { "basetime" : 2500848000000, "value" : 129.0, "__time" : "1949-04-01T00:00:00.000Z", "predict" : -1096.7128, "isAnomaly" : true "basetime" : 2495750400000, "value" : 118.0, "__time" : "1949-02-01T00:00:00.000Z", "predict" : -1034.9606, "isAnomaly" : true

Editor's Notes

  1. 세상에는 참 많은 데이타들이 발생되고 있고 그 양이 점점 더 늘어나고 있다. 이러한 데이타를 활용해서 정말 다양한 일들을 하고 있는 데 그중에 대표적인 것들중 하나가 관제(모니터링?)이다. 서비스, 서버, 보안, 장비 등이 정상적으로 동작하고 있는지 모니터링하고 이상현상이 발생하면 이를 확인하여 문제를 해결하는 것이다. 이러한 일들은 그 대상의 범위가 점점 넓어지고 있으며 그 크기(?)도 커지고 있다. 그래서 이를 사람이 일일이 확인할 수 없어 시스템을 구축하고 이를 기반으로 운영을 하게 된다. 그런데 이런 대상 데이타가 점점 커지면서 big data에 대한 (빠른) 처리가 요구되고 좀더 빠른 확인을 위해서 realtime data(와 빠른 응답)에 대한 기능이 요구되고 보다 정교한 상태 판단(이상판단)을 위해서 machine learning 필요해졌다. 그래서 big data, realtime을 기반한 machine learning anomaly detection system인 metatron-anomaly를 만들게 되었다.
  2. 사이언티스트의 부재, 정답 데이타 생성의 어려움, 큰 데이타에 대한 분석의 어려움, 분석 환경 구성의 비용, 운영 환경으로의 적용의 어려움 등 다양한 이유로 이를 실환경에 적용하기가 어려웠다. 그리하여 metatron anomaly는 시계열 기반 예측 알고리즘을 활용하여 unsupervised learning을 수행하기 때문에 정답 데이타 생성 필요성이 없다. 그래서 원본 데이타에 바로 learning을 수행할 수 있다. 다양한 알고리즘을 자동으로 학습한 후 최적의 모델을 제안함으로 현업 담당자가 직접 machine learning을 수행할 수 있다. druid 기반의 분석 엔진에 embed하여 알고리즘을 수행함으로써 큰 데이타에 대해도 추가적인 관리나 이관 등과 같은 이슈 없이 수행할 수 있다. 운영 환경에 바로 학습과 적용을 바로 수행할 수 있어별도의 분석 환경 구축이나 개발이후의 실적용을 위한 작업이 필요없다.
  3. machine learning에 기반한 서비스의 경우 시간의 경과나 환경의 변화 등으로 이전에 학습해 놓은 모텔의 정확도가 점점 떨어지는 현상이 발생하게 된다. 이런 경우 앞서 이야기 했던 것과 같이 다시 학습 대상을 선정하고 그 대한 정답 데이타를 만들고 다시 학습을 수행한 이후 운영에 적용하는 단계를 또 수행해야한다. 환경의 변경이 빈번하거나 학습까지의 시간의 많이 걸리는 경우 실재로 운영이 동작하는 기간이 얼마되지 않는 경우도 많이 있다. 아래와 같이 분석 사이클을 제공하여 모델의 정확도를 안정적으로 유지, 관리할 수 있다. 데이타의 확인 -> 학습 (machine learning) -> 이상 탐지 -> 원인 분석 -> feedback -> 재학습 (machine learning) -> 보다 정확한 이상탐지
  4. metatron-anomaly는 realtime big data engine인 metatron-engine(druid)를 기반으로 다양한 timeserise machine leaning 기법들과 쉬운 사용성을 제공함으로써 큰 데이타에 대해서 빠르고 사용하기 쉬운 machine learning 관제 솔루션입니다. 큰 3개의 꼭지 : machine learning, alarm management, big data analyze
  5. 초록 : 머신러닝 빨강 : 데이터 프로세스(druid) 회색 : 프론트 노랑 : 서버
  6. 초록 : 머신러닝 빨강 : 데이터 프로세스(druid) 회색 : 프론트 노랑 : 서버
  7. 어떻게 동작하는가? 어떻게 만들었는가? Metatron anomaly > druid > extension/druid-egads > egads > openforecast
  8. trainig function과 evaluate function을 구분 anomaly에 대한 판단을 외부에서 구현 모델을 관리하여 모델의 상태 및 parameter 변경 가능 기존의 동작 방식은 후처리 분석에 특화되어 있는 방식으로 training 과 evaluate를 구분하지 않고 한번에 수행하여 대상 데이타의 특이점을 확인하는 방식이었다. 하지만 이렇게 하면 매번 training을 수행하는 비용도 발생할 뿐만 아니라 정상으로 training하고 신규 데이타에 대해서 evaluate하는 방식을 적용할 수 없다.
  9. Open source