SlideShare a Scribd company logo
1 of 46
Download to read offline
Fluentd meets Unicode
Windows EventLog
Fluentd meetup 2019
ClearCode Inc.
Hiroshi Hatake
Agenda
• Motivation
• About winevt_c
• Unicode Character handling
• Using ANSI code page issues
• Unicode Testing
• Benchmark
• Throughput Benchmark
• Conclusion
Agenda
• Motivation
• About winevt_c
• Unicode Character handling
• Using ANSI code page issues
• Unicode Testing
• Benchmark
• Throughput Benchmark
• Conclusion
Motivation
• in_windows_eventlog has some issues...
• 😰Unicode character handling. Sometimes garbage chracters are generated.
• 😥Memory consumption in flood of windows event
• 😨Sometimes it causes SEGV
• 😅CPU spike when resuming operation
• 😱At least one event should exist in the listening channel on starting to listen.
Otherwise, nothing to be read
• And they are caused by dependent gem which is named win32-
eventlog
Next Topic
• Motivation
• About winevt_c
• Unicode Character handling
• Using ANSI code page issues
• Unicode Testing
• Benchmark
• Throughput Benchmark
• Conclusion
winevt_c (new gem): Code examples
Just querying for specified channel
winevt_c (new gem): Code examples
Update bookmark for querying channel
winevt_c (new gem): Code examples
Subscribe channel
winevt_c (new gem)
• It solves win32-eventlog issues
• 😊Improve Unicode character handling.
• 😋It doesn’t cause SEGV on the same situation
• 😃CPU spike when resuming operation is declined
• 😗Reduce memory consumption in flood of windows event
• This issue still exists but it is reduced memory consumption
• 😁At least one event should exist in the listening channel on starting to listen.
• Empty channel can also subscribe. The older one will be staled.
winevt_c (new gem)
The relationship of plugins and gems in this talk
In_windows_eventlog
win32-eventlog
In_windows_eventlog2
winevt_c
Next Topic
• Motivation
• About winevt_c
• Unicode Character handling
• Using ANSI code page issues
• Unicode Testing
• Benchmark
• Throughput Benchmark
• Conclusion
Unicode Character handling
• What is Unicode?
In Windows context, it means UTF-16.
In Ruby C extension context, it means UTF-8.
Unicode Character handling:
What is the difference between ANSI and Unicode?
• In Windows, ANSI means current code page
• In Japanese Edition Windows, it is CP932 (Windows-31J).
• -A suffixed API uses ANSI character encoding
• In Windows, Unicode means UTF-16
• -W suffixed API uses UTF-16 character encoding
• PWSTR and such W contained typed API arguments also use UTF-16 character
encoding
Unicode Character handling
• We need to convert from UTF-16 to target character encoding
• In this case, target encoding is UTF-8
• But, win32-eventlog gem uses OpenEventLogA, ReadEventLogA (ANSI
version)
• To handle Unicode characters correctly, we need to use OpenEventLogW,
ReadEventLogW (Unicode version)
• win32-eventlog gem development is inactive in recent days.
• Unicode version patch exists, but it have not been merged in....
Next Topic
• Motivation
• About winevt_c
• Unicode Character handling
• Using ANSI code page issues
• Unicode Testing
• Benchmark
• Throughput Benchmark
• Conclusion
Using ANSI code page issues
• On Japanese Edition Windows' default code page can handle...
• Alphabets
• Greek letters
• Cyrillic alphabets
• Hiragana, Katakana
• JIS level 1 and 2 Kanji sets (Chinese Characters)
• But other characters cannot handle with cp932 (In Japanese Edition
Windows)
Using ANSI code page issues:
UTF-8 contains more characters!
• UTF-8 can also handles...
• Alphabets
• Greek letters
• Cyrillic alphabets
• Hiragana, Katakana
• JIS level 1 and 2 Kanji set (Chinese Characters)
• And...
• diacritical mark (such as umlaut in German: ä, ö, ü)
• Hebrew, Arabic, Devanagari (Hindi)
• South East Asia Characters (Thai, Laotian... etc.)
• And Emoji!! 😎
Using ANSI code page issues: Solution
• We decide to develop the brand new gem which is named winevt_c.
• 😍It uses new Windows API that is defined in <winevt.h>
• 😉The new API provides bookmark which is used to resume operation
• 😊Unicode API
• But this gem is written in C and C++
• 😭Users need to build C/C++ extension code by themselves
• 😮Current RubyInstaller bundles MSYS2 system. Users can use gcc and g++ after MSYS2
installation which is kicked by RubyInstaller.
Next Topic
• Motivation
• About winevt_c
• Unicode Character handling
• Using ANSI code page issues
• Unicode Testing
• Benchmark
• Throughput Benchmark
• Conclusion
Unicode Testing: Environment
• Windows 10 Home 1903 64bit
• Japanese Edition (cp932, Windows-31J)
• Writing Windows EventLog
• Benchmark tool written in C#
• Terminal:
• PowerShell Core 6 on Windows Terminal(Preview)
• Used Windows Terminal Profile is here
Unicode Testing: Writing Events in .NET (picked up)
// Alphabets
// Non-ASCII symbols
// Japanese
// Thai
// Cyrillic
// Greek letters
// Arabic alphabets
// Devanagari
// Unicod-ish Kaomoji
// Emoji
Unicode Testing: Writing Events
PS> EventLogbencher.exe -w 10 -t 10
• 10 Events Written into Benchmark channel
Unicode Testing: Configuration (old plugin)
from_encoding/encoding
parameters are needed to
handle character encoding
correctly but still
unhandled characters exist.
And using default
read_interval: 2s.
Unicode Testing: Configuration (new plugin)
No need to specify
from_encoding/encoding
parameters. And new plugin
always handles character
encoding as UTF-8.
And using default
read_interval: 2s.
Unicode Testing: Execution Log (old plugin)
The following characters are broken
• Symbol ⒻⓁⓉⒹ™​
• Thai
• Arabic
• Devanagari (Hindi)
• Unicode contained Kaomoji
• Emoji
Unicode Testing: Execution Log (new plugin)
The following characters are
rendered
• Symbol ⒻⓁⓉⒹ™
• Thai
• Arabic (but slightly wrong rendered)
• Devanagari (Hindi)
• Unicode contained Kaomoji
• Emoji
Next Topic
• Motivation
• About winevt_c
• Unicode Character handling
• Using ANSI code page issues
• Unicode Testing
• Benchmark
• Throughput Benchmark
• Conclusion
Benchmark
• Collector Node
• Windows 10 1809 2 vCPU 4GB Standard SSD
• Benchmark tool written in C#
• Aggregator Node
• Ubuntu 18.04 2 vCPU 4GB Standard SSD
• They are also Azure instances
Write
EventLog
Collector Node Aggregator Node
Benchmark: Flow Rate of Events
• 1000000 events total
• About 91 events per seconds
PS> EventLogbencher.exe -w 100 -t 10000000
• 1 million Events Written into Benchmark channel
Benchmark: Configuration (old)
Collector node Aggregator node
# or stdout
Benchmark: Configuration (new)
Collector node Aggregator node
# or stdout
Benchmark (old plugin)
Flow rate: 91.34361 events per seconds
Benchmark (new plugin)
Flow rate: 91.30634 events per seconds
Benchmark Result: in_windows_eventlog
• Pros
• 😀Low CPU usage
• Cons
• 😣High memory usage
• 😫Incomplete Unicode handling
Benchmark Result: in_windows_eventlog2
• Pros
• 😀Low memory usage
• 😋Unicode handling
• 😊Immediately subscribe channel even if it's empty on subscribe
• Cons
• 😣Slightly higher CPU usage rather than old plugin's
Next Topic
• Motivation
• About winevt_c
• Unicode Character handling
• Using ANSI code page issues
• Unicode Testing
• Benchmark
• Throughput Benchmark
• Conclusion
Throughput Benchmark
• Collector Node
• Windows 10 1809 2 vCPU 4GB Standard SSD
• Benchmark tool written in C#
• Aggregator Node
• Ubuntu 18.04 2 vCPU 4GB Standard SSD
• They are also Azure instances
Write
EventLog
Collector Node Aggregator Node
Throughput Benchmark
• 500000 events total
• Increase flow rate of events step by step
• PS> EventLogbencher.exe -w 50 -t 5000000
• 159.4378 events per seconds
• PS> EventLogbencher.exe -w 30 -t 5000000
• 293.4133 events per seconds
• PS> EventLogbencher.exe -w 20 -t 5000000
• 314.823 events per seconds
• PS> EventLogbencher.exe -w 15 -t 5000000
• 321.7238 events per seconds
• PS> EventLogbencher.exe -w 10 -t 5000000
• Stuck 🤢
• 598.8318 events per seconds
• chunk bytes limit exceeds for an emitted event stream warning is generated from Fluentd....
Throughput Benchmark: Configuration
Collector node Aggregator node
# or stdout
Throughput Benchmark: Result 1
Throughput Benchmark: Result 2
Throughput Benchmark: Result 3
Throughput Benchmark: Result 4
Conclusion
• The new plugin which is named in_windows_eventlog2 does...
• Improve Unicode handling
• Reduce memory consumption
• Solve CPU spike after resuming operation
• The new plugin might be going to solve...
• Slightly higher CPU usage than old plugin's
• The new plugin can handle about 300 events per second with default
read interval.
Epilogue: Current fluent-plugin-windows-eventlog status
• The new plugin which is named in_windows_eventlog2
• Included fluent-plugin-windows-eventlog v0.3.0
• We want to hear more user voices and use cases
• Installation is harder than the older one
Let's enjoy Monitoring Windows EventLog! 😁
Any Questions?

More Related Content

What's hot

テストエンジニアの品格 #automatornight
テストエンジニアの品格 #automatornightテストエンジニアの品格 #automatornight
テストエンジニアの品格 #automatornightkyon mm
 
Selenium DeTox for Achieving the Right Testing Pyramid
Selenium DeTox for Achieving the Right Testing PyramidSelenium DeTox for Achieving the Right Testing Pyramid
Selenium DeTox for Achieving the Right Testing PyramidNaresh Jain
 
AltUnityTesterを試してみた #gotandaunity
AltUnityTesterを試してみた #gotandaunityAltUnityTesterを試してみた #gotandaunity
AltUnityTesterを試してみた #gotandaunityKoji Hasegawa
 
マルチスレッド問題の特定と再現に頑張った話
マルチスレッド問題の特定と再現に頑張った話マルチスレッド問題の特定と再現に頑張った話
マルチスレッド問題の特定と再現に頑張った話LINE Corporation
 
SNPデータ解析入門
SNPデータ解析入門SNPデータ解析入門
SNPデータ解析入門Amelieff
 
ザ・ジェネラリスト #5000dai
ザ・ジェネラリスト #5000daiザ・ジェネラリスト #5000dai
ザ・ジェネラリスト #5000daikyon mm
 
Automatisation des tests: le mythe du ROI
Automatisation des tests: le mythe du ROIAutomatisation des tests: le mythe du ROI
Automatisation des tests: le mythe du ROIGilles Mantel
 
ソフトウェアテストの最新動向の学び方
ソフトウェアテストの最新動向の学び方ソフトウェアテストの最新動向の学び方
ソフトウェアテストの最新動向の学び方Keizo Tatsumi
 
品質と開発スピードの両立と、OSSのリスク低減策のご紹介 / GTMF2019
品質と開発スピードの両立と、OSSのリスク低減策のご紹介 / GTMF2019品質と開発スピードの両立と、OSSのリスク低減策のご紹介 / GTMF2019
品質と開発スピードの両立と、OSSのリスク低減策のご紹介 / GTMF2019Game Tools & Middleware Forum
 
バグ0の資産を積み上げるための証明駆動開発入門
バグ0の資産を積み上げるための証明駆動開発入門バグ0の資産を積み上げるための証明駆動開発入門
バグ0の資産を積み上げるための証明駆動開発入門Riku Sakamoto
 
PHPからgoへの移行で分かったこと
PHPからgoへの移行で分かったことPHPからgoへの移行で分かったこと
PHPからgoへの移行で分かったことgree_tech
 
KPTは2回目が大切なのに…
KPTは2回目が大切なのに…KPTは2回目が大切なのに…
KPTは2回目が大切なのに…Mineo Matsuya
 
Introduction to BDD
Introduction to BDDIntroduction to BDD
Introduction to BDDKnoldus Inc.
 
How Spotify Does Test Automation - Kristian Karl
How Spotify Does Test Automation - Kristian KarlHow Spotify Does Test Automation - Kristian Karl
How Spotify Does Test Automation - Kristian KarlSmartBear
 
60分でわかった気になるISO29119 #wacate
60分でわかった気になるISO29119 #wacate60分でわかった気になるISO29119 #wacate
60分でわかった気になるISO29119 #wacateKinji Akemine
 
製造業向け量子コンピュータ時代のDXセミナー~ 最適化の中身を覗いてみよう~
製造業向け量子コンピュータ時代のDXセミナー~ 最適化の中身を覗いてみよう~製造業向け量子コンピュータ時代のDXセミナー~ 最適化の中身を覗いてみよう~
製造業向け量子コンピュータ時代のDXセミナー~ 最適化の中身を覗いてみよう~Fixstars Corporation
 
Career in Software Testing | Skills Required for Software Test Engineer | Edu...
Career in Software Testing | Skills Required for Software Test Engineer | Edu...Career in Software Testing | Skills Required for Software Test Engineer | Edu...
Career in Software Testing | Skills Required for Software Test Engineer | Edu...Edureka!
 
C++による数値解析の並列化手法
C++による数値解析の並列化手法C++による数値解析の並列化手法
C++による数値解析の並列化手法dc1394
 

What's hot (20)

テストエンジニアの品格 #automatornight
テストエンジニアの品格 #automatornightテストエンジニアの品格 #automatornight
テストエンジニアの品格 #automatornight
 
Selenium DeTox for Achieving the Right Testing Pyramid
Selenium DeTox for Achieving the Right Testing PyramidSelenium DeTox for Achieving the Right Testing Pyramid
Selenium DeTox for Achieving the Right Testing Pyramid
 
ゲート方式量子コンピュータの概要
ゲート方式量子コンピュータの概要ゲート方式量子コンピュータの概要
ゲート方式量子コンピュータの概要
 
AltUnityTesterを試してみた #gotandaunity
AltUnityTesterを試してみた #gotandaunityAltUnityTesterを試してみた #gotandaunity
AltUnityTesterを試してみた #gotandaunity
 
マルチスレッド問題の特定と再現に頑張った話
マルチスレッド問題の特定と再現に頑張った話マルチスレッド問題の特定と再現に頑張った話
マルチスレッド問題の特定と再現に頑張った話
 
SNPデータ解析入門
SNPデータ解析入門SNPデータ解析入門
SNPデータ解析入門
 
ザ・ジェネラリスト #5000dai
ザ・ジェネラリスト #5000daiザ・ジェネラリスト #5000dai
ザ・ジェネラリスト #5000dai
 
Automatisation des tests: le mythe du ROI
Automatisation des tests: le mythe du ROIAutomatisation des tests: le mythe du ROI
Automatisation des tests: le mythe du ROI
 
ソフトウェアテストの最新動向の学び方
ソフトウェアテストの最新動向の学び方ソフトウェアテストの最新動向の学び方
ソフトウェアテストの最新動向の学び方
 
品質と開発スピードの両立と、OSSのリスク低減策のご紹介 / GTMF2019
品質と開発スピードの両立と、OSSのリスク低減策のご紹介 / GTMF2019品質と開発スピードの両立と、OSSのリスク低減策のご紹介 / GTMF2019
品質と開発スピードの両立と、OSSのリスク低減策のご紹介 / GTMF2019
 
バグ0の資産を積み上げるための証明駆動開発入門
バグ0の資産を積み上げるための証明駆動開発入門バグ0の資産を積み上げるための証明駆動開発入門
バグ0の資産を積み上げるための証明駆動開発入門
 
PHPからgoへの移行で分かったこと
PHPからgoへの移行で分かったことPHPからgoへの移行で分かったこと
PHPからgoへの移行で分かったこと
 
KPTは2回目が大切なのに…
KPTは2回目が大切なのに…KPTは2回目が大切なのに…
KPTは2回目が大切なのに…
 
開発とテストが一体となったソフトウェア開発
開発とテストが一体となったソフトウェア開発開発とテストが一体となったソフトウェア開発
開発とテストが一体となったソフトウェア開発
 
Introduction to BDD
Introduction to BDDIntroduction to BDD
Introduction to BDD
 
How Spotify Does Test Automation - Kristian Karl
How Spotify Does Test Automation - Kristian KarlHow Spotify Does Test Automation - Kristian Karl
How Spotify Does Test Automation - Kristian Karl
 
60分でわかった気になるISO29119 #wacate
60分でわかった気になるISO29119 #wacate60分でわかった気になるISO29119 #wacate
60分でわかった気になるISO29119 #wacate
 
製造業向け量子コンピュータ時代のDXセミナー~ 最適化の中身を覗いてみよう~
製造業向け量子コンピュータ時代のDXセミナー~ 最適化の中身を覗いてみよう~製造業向け量子コンピュータ時代のDXセミナー~ 最適化の中身を覗いてみよう~
製造業向け量子コンピュータ時代のDXセミナー~ 最適化の中身を覗いてみよう~
 
Career in Software Testing | Skills Required for Software Test Engineer | Edu...
Career in Software Testing | Skills Required for Software Test Engineer | Edu...Career in Software Testing | Skills Required for Software Test Engineer | Edu...
Career in Software Testing | Skills Required for Software Test Engineer | Edu...
 
C++による数値解析の並列化手法
C++による数値解析の並列化手法C++による数値解析の並列化手法
C++による数値解析の並列化手法
 

Similar to Fluentd meetup 2019

GNAT Pro User Day: Ada Factory
GNAT Pro User Day: Ada FactoryGNAT Pro User Day: Ada Factory
GNAT Pro User Day: Ada FactoryAdaCore
 
Living in a multiligual world: Internationalization for Web 2.0 Applications
Living in a multiligual world: Internationalization for Web 2.0 ApplicationsLiving in a multiligual world: Internationalization for Web 2.0 Applications
Living in a multiligual world: Internationalization for Web 2.0 ApplicationsLars Trieloff
 
[cb22] Your Printer is not your Printer ! - Hacking Printers at Pwn2Own by A...
[cb22]  Your Printer is not your Printer ! - Hacking Printers at Pwn2Own by A...[cb22]  Your Printer is not your Printer ! - Hacking Printers at Pwn2Own by A...
[cb22] Your Printer is not your Printer ! - Hacking Printers at Pwn2Own by A...CODE BLUE
 
Lean Software Production and Qualification Infrastructures
Lean Software Production and Qualification InfrastructuresLean Software Production and Qualification Infrastructures
Lean Software Production and Qualification InfrastructuresAdaCore
 
Living in a Multi-lingual World: Internationalization in Web and Desktop Appl...
Living in a Multi-lingual World: Internationalization in Web and Desktop Appl...Living in a Multi-lingual World: Internationalization in Web and Desktop Appl...
Living in a Multi-lingual World: Internationalization in Web and Desktop Appl...adunne
 
GPCE16: Automatic Non-functional Testing of Code Generators Families
GPCE16: Automatic Non-functional Testing of Code Generators FamiliesGPCE16: Automatic Non-functional Testing of Code Generators Families
GPCE16: Automatic Non-functional Testing of Code Generators FamiliesMohamed BOUSSAA
 
Micro servoces-choose-the-right-tools-programing-language
Micro servoces-choose-the-right-tools-programing-languageMicro servoces-choose-the-right-tools-programing-language
Micro servoces-choose-the-right-tools-programing-languageYouness Lasmak
 
Implementing SR-IOv failover for Windows guests during live migration
Implementing SR-IOv failover for Windows guests during live migrationImplementing SR-IOv failover for Windows guests during live migration
Implementing SR-IOv failover for Windows guests during live migrationYan Vugenfirer
 
"You Don't Know NODE.JS" by Hengki Mardongan Sihombing (Urbanhire)
"You Don't Know NODE.JS" by Hengki Mardongan Sihombing (Urbanhire)"You Don't Know NODE.JS" by Hengki Mardongan Sihombing (Urbanhire)
"You Don't Know NODE.JS" by Hengki Mardongan Sihombing (Urbanhire)Tech in Asia ID
 
JUC Europe 2015: A Reproducible Build Environment with Jenkins
JUC Europe 2015: A Reproducible Build Environment with JenkinsJUC Europe 2015: A Reproducible Build Environment with Jenkins
JUC Europe 2015: A Reproducible Build Environment with JenkinsCloudBees
 
Asynchronous web-development with Python
Asynchronous web-development with PythonAsynchronous web-development with Python
Asynchronous web-development with PythonAnton Caceres
 
Pharo Virtual Machine: News from the Front
Pharo Virtual Machine: News from the FrontPharo Virtual Machine: News from the Front
Pharo Virtual Machine: News from the FrontESUG
 
Network Programming With Anyevent
Network Programming With AnyeventNetwork Programming With Anyevent
Network Programming With AnyeventPedro Melo
 
Developing a mobile cross-platform library
Developing a mobile cross-platform libraryDeveloping a mobile cross-platform library
Developing a mobile cross-platform libraryKostis Dadamis
 
Windows 8 Hot or Not
Windows 8 Hot or NotWindows 8 Hot or Not
Windows 8 Hot or Notpwlodek
 
Dino2 - the Amazing Evolution of the VA Smalltalk Virtual Machine
Dino2 - the Amazing Evolution of the VA Smalltalk Virtual MachineDino2 - the Amazing Evolution of the VA Smalltalk Virtual Machine
Dino2 - the Amazing Evolution of the VA Smalltalk Virtual MachineESUG
 
Radu vunvulea building and testing windows 8 metro style applications using ...
Radu vunvulea  building and testing windows 8 metro style applications using ...Radu vunvulea  building and testing windows 8 metro style applications using ...
Radu vunvulea building and testing windows 8 metro style applications using ...Radu Vunvulea
 
Code quality par Simone Civetta
Code quality par Simone CivettaCode quality par Simone Civetta
Code quality par Simone CivettaCocoaHeads France
 

Similar to Fluentd meetup 2019 (20)

GNAT Pro User Day: Ada Factory
GNAT Pro User Day: Ada FactoryGNAT Pro User Day: Ada Factory
GNAT Pro User Day: Ada Factory
 
Living in a multiligual world: Internationalization for Web 2.0 Applications
Living in a multiligual world: Internationalization for Web 2.0 ApplicationsLiving in a multiligual world: Internationalization for Web 2.0 Applications
Living in a multiligual world: Internationalization for Web 2.0 Applications
 
[cb22] Your Printer is not your Printer ! - Hacking Printers at Pwn2Own by A...
[cb22]  Your Printer is not your Printer ! - Hacking Printers at Pwn2Own by A...[cb22]  Your Printer is not your Printer ! - Hacking Printers at Pwn2Own by A...
[cb22] Your Printer is not your Printer ! - Hacking Printers at Pwn2Own by A...
 
Lean Software Production and Qualification Infrastructures
Lean Software Production and Qualification InfrastructuresLean Software Production and Qualification Infrastructures
Lean Software Production and Qualification Infrastructures
 
Living in a Multi-lingual World: Internationalization in Web and Desktop Appl...
Living in a Multi-lingual World: Internationalization in Web and Desktop Appl...Living in a Multi-lingual World: Internationalization in Web and Desktop Appl...
Living in a Multi-lingual World: Internationalization in Web and Desktop Appl...
 
GPCE16: Automatic Non-functional Testing of Code Generators Families
GPCE16: Automatic Non-functional Testing of Code Generators FamiliesGPCE16: Automatic Non-functional Testing of Code Generators Families
GPCE16: Automatic Non-functional Testing of Code Generators Families
 
Micro servoces-choose-the-right-tools-programing-language
Micro servoces-choose-the-right-tools-programing-languageMicro servoces-choose-the-right-tools-programing-language
Micro servoces-choose-the-right-tools-programing-language
 
Continuous Integration 101
Continuous Integration 101Continuous Integration 101
Continuous Integration 101
 
Implementing SR-IOv failover for Windows guests during live migration
Implementing SR-IOv failover for Windows guests during live migrationImplementing SR-IOv failover for Windows guests during live migration
Implementing SR-IOv failover for Windows guests during live migration
 
"You Don't Know NODE.JS" by Hengki Mardongan Sihombing (Urbanhire)
"You Don't Know NODE.JS" by Hengki Mardongan Sihombing (Urbanhire)"You Don't Know NODE.JS" by Hengki Mardongan Sihombing (Urbanhire)
"You Don't Know NODE.JS" by Hengki Mardongan Sihombing (Urbanhire)
 
JUC Europe 2015: A Reproducible Build Environment with Jenkins
JUC Europe 2015: A Reproducible Build Environment with JenkinsJUC Europe 2015: A Reproducible Build Environment with Jenkins
JUC Europe 2015: A Reproducible Build Environment with Jenkins
 
Asynchronous web-development with Python
Asynchronous web-development with PythonAsynchronous web-development with Python
Asynchronous web-development with Python
 
Node.js for beginner
Node.js for beginnerNode.js for beginner
Node.js for beginner
 
Pharo Virtual Machine: News from the Front
Pharo Virtual Machine: News from the FrontPharo Virtual Machine: News from the Front
Pharo Virtual Machine: News from the Front
 
Network Programming With Anyevent
Network Programming With AnyeventNetwork Programming With Anyevent
Network Programming With Anyevent
 
Developing a mobile cross-platform library
Developing a mobile cross-platform libraryDeveloping a mobile cross-platform library
Developing a mobile cross-platform library
 
Windows 8 Hot or Not
Windows 8 Hot or NotWindows 8 Hot or Not
Windows 8 Hot or Not
 
Dino2 - the Amazing Evolution of the VA Smalltalk Virtual Machine
Dino2 - the Amazing Evolution of the VA Smalltalk Virtual MachineDino2 - the Amazing Evolution of the VA Smalltalk Virtual Machine
Dino2 - the Amazing Evolution of the VA Smalltalk Virtual Machine
 
Radu vunvulea building and testing windows 8 metro style applications using ...
Radu vunvulea  building and testing windows 8 metro style applications using ...Radu vunvulea  building and testing windows 8 metro style applications using ...
Radu vunvulea building and testing windows 8 metro style applications using ...
 
Code quality par Simone Civetta
Code quality par Simone CivettaCode quality par Simone Civetta
Code quality par Simone Civetta
 

More from cosmo0920

Prometheus meetup tokyo#3 slide
Prometheus meetup tokyo#3 slidePrometheus meetup tokyo#3 slide
Prometheus meetup tokyo#3 slidecosmo0920
 
20160730 fluentd meetup in matsue slide
20160730 fluentd meetup in matsue slide20160730 fluentd meetup in matsue slide
20160730 fluentd meetup in matsue slidecosmo0920
 
新宿Scala座2014 3月号スライド
新宿Scala座2014 3月号スライド新宿Scala座2014 3月号スライド
新宿Scala座2014 3月号スライドcosmo0920
 
Kernelvm-9th-lt
Kernelvm-9th-ltKernelvm-9th-lt
Kernelvm-9th-ltcosmo0920
 
カーネル VM懇親会LT
カーネル VM懇親会LTカーネル VM懇親会LT
カーネル VM懇親会LTcosmo0920
 
カーネルVm関西その参lt
カーネルVm関西その参ltカーネルVm関西その参lt
カーネルVm関西その参ltcosmo0920
 

More from cosmo0920 (6)

Prometheus meetup tokyo#3 slide
Prometheus meetup tokyo#3 slidePrometheus meetup tokyo#3 slide
Prometheus meetup tokyo#3 slide
 
20160730 fluentd meetup in matsue slide
20160730 fluentd meetup in matsue slide20160730 fluentd meetup in matsue slide
20160730 fluentd meetup in matsue slide
 
新宿Scala座2014 3月号スライド
新宿Scala座2014 3月号スライド新宿Scala座2014 3月号スライド
新宿Scala座2014 3月号スライド
 
Kernelvm-9th-lt
Kernelvm-9th-ltKernelvm-9th-lt
Kernelvm-9th-lt
 
カーネル VM懇親会LT
カーネル VM懇親会LTカーネル VM懇親会LT
カーネル VM懇親会LT
 
カーネルVm関西その参lt
カーネルVm関西その参ltカーネルVm関西その参lt
カーネルVm関西その参lt
 

Recently uploaded

Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...harshavardhanraghave
 
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AISyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AIABDERRAOUF MEHENNI
 
Unlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language ModelsUnlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language Modelsaagamshah0812
 
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsUnveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsAlberto González Trastoy
 
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfLearn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfkalichargn70th171
 
Diamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with PrecisionDiamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with PrecisionSolGuruz
 
Software Quality Assurance Interview Questions
Software Quality Assurance Interview QuestionsSoftware Quality Assurance Interview Questions
Software Quality Assurance Interview QuestionsArshad QA
 
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...MyIntelliSource, Inc.
 
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...OnePlan Solutions
 
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...ICS
 
How To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected WorkerHow To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected WorkerThousandEyes
 
CALL ON ➥8923113531 🔝Call Girls Badshah Nagar Lucknow best Female service
CALL ON ➥8923113531 🔝Call Girls Badshah Nagar Lucknow best Female serviceCALL ON ➥8923113531 🔝Call Girls Badshah Nagar Lucknow best Female service
CALL ON ➥8923113531 🔝Call Girls Badshah Nagar Lucknow best Female serviceanilsa9823
 
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...MyIntelliSource, Inc.
 
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...Health
 
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online ☂️
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online  ☂️CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online  ☂️
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online ☂️anilsa9823
 
How To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.jsHow To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.jsAndolasoft Inc
 
5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdfWave PLM
 
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...kellynguyen01
 

Recently uploaded (20)

Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
 
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AISyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
 
Unlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language ModelsUnlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language Models
 
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsUnveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
 
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfLearn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
 
Diamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with PrecisionDiamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with Precision
 
Software Quality Assurance Interview Questions
Software Quality Assurance Interview QuestionsSoftware Quality Assurance Interview Questions
Software Quality Assurance Interview Questions
 
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
 
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICECHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
 
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
 
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
 
How To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected WorkerHow To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected Worker
 
CALL ON ➥8923113531 🔝Call Girls Badshah Nagar Lucknow best Female service
CALL ON ➥8923113531 🔝Call Girls Badshah Nagar Lucknow best Female serviceCALL ON ➥8923113531 🔝Call Girls Badshah Nagar Lucknow best Female service
CALL ON ➥8923113531 🔝Call Girls Badshah Nagar Lucknow best Female service
 
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
 
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
 
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online ☂️
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online  ☂️CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online  ☂️
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online ☂️
 
How To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.jsHow To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.js
 
5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf
 
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
 
Vip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS Live
Vip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS LiveVip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS Live
Vip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS Live
 

Fluentd meetup 2019

  • 1. Fluentd meets Unicode Windows EventLog Fluentd meetup 2019 ClearCode Inc. Hiroshi Hatake
  • 2. Agenda • Motivation • About winevt_c • Unicode Character handling • Using ANSI code page issues • Unicode Testing • Benchmark • Throughput Benchmark • Conclusion
  • 3. Agenda • Motivation • About winevt_c • Unicode Character handling • Using ANSI code page issues • Unicode Testing • Benchmark • Throughput Benchmark • Conclusion
  • 4. Motivation • in_windows_eventlog has some issues... • 😰Unicode character handling. Sometimes garbage chracters are generated. • 😥Memory consumption in flood of windows event • 😨Sometimes it causes SEGV • 😅CPU spike when resuming operation • 😱At least one event should exist in the listening channel on starting to listen. Otherwise, nothing to be read • And they are caused by dependent gem which is named win32- eventlog
  • 5. Next Topic • Motivation • About winevt_c • Unicode Character handling • Using ANSI code page issues • Unicode Testing • Benchmark • Throughput Benchmark • Conclusion
  • 6. winevt_c (new gem): Code examples Just querying for specified channel
  • 7. winevt_c (new gem): Code examples Update bookmark for querying channel
  • 8. winevt_c (new gem): Code examples Subscribe channel
  • 9. winevt_c (new gem) • It solves win32-eventlog issues • 😊Improve Unicode character handling. • 😋It doesn’t cause SEGV on the same situation • 😃CPU spike when resuming operation is declined • 😗Reduce memory consumption in flood of windows event • This issue still exists but it is reduced memory consumption • 😁At least one event should exist in the listening channel on starting to listen. • Empty channel can also subscribe. The older one will be staled.
  • 10. winevt_c (new gem) The relationship of plugins and gems in this talk In_windows_eventlog win32-eventlog In_windows_eventlog2 winevt_c
  • 11. Next Topic • Motivation • About winevt_c • Unicode Character handling • Using ANSI code page issues • Unicode Testing • Benchmark • Throughput Benchmark • Conclusion
  • 12. Unicode Character handling • What is Unicode? In Windows context, it means UTF-16. In Ruby C extension context, it means UTF-8.
  • 13. Unicode Character handling: What is the difference between ANSI and Unicode? • In Windows, ANSI means current code page • In Japanese Edition Windows, it is CP932 (Windows-31J). • -A suffixed API uses ANSI character encoding • In Windows, Unicode means UTF-16 • -W suffixed API uses UTF-16 character encoding • PWSTR and such W contained typed API arguments also use UTF-16 character encoding
  • 14. Unicode Character handling • We need to convert from UTF-16 to target character encoding • In this case, target encoding is UTF-8 • But, win32-eventlog gem uses OpenEventLogA, ReadEventLogA (ANSI version) • To handle Unicode characters correctly, we need to use OpenEventLogW, ReadEventLogW (Unicode version) • win32-eventlog gem development is inactive in recent days. • Unicode version patch exists, but it have not been merged in....
  • 15. Next Topic • Motivation • About winevt_c • Unicode Character handling • Using ANSI code page issues • Unicode Testing • Benchmark • Throughput Benchmark • Conclusion
  • 16. Using ANSI code page issues • On Japanese Edition Windows' default code page can handle... • Alphabets • Greek letters • Cyrillic alphabets • Hiragana, Katakana • JIS level 1 and 2 Kanji sets (Chinese Characters) • But other characters cannot handle with cp932 (In Japanese Edition Windows)
  • 17. Using ANSI code page issues: UTF-8 contains more characters! • UTF-8 can also handles... • Alphabets • Greek letters • Cyrillic alphabets • Hiragana, Katakana • JIS level 1 and 2 Kanji set (Chinese Characters) • And... • diacritical mark (such as umlaut in German: ä, ö, ü) • Hebrew, Arabic, Devanagari (Hindi) • South East Asia Characters (Thai, Laotian... etc.) • And Emoji!! 😎
  • 18. Using ANSI code page issues: Solution • We decide to develop the brand new gem which is named winevt_c. • 😍It uses new Windows API that is defined in <winevt.h> • 😉The new API provides bookmark which is used to resume operation • 😊Unicode API • But this gem is written in C and C++ • 😭Users need to build C/C++ extension code by themselves • 😮Current RubyInstaller bundles MSYS2 system. Users can use gcc and g++ after MSYS2 installation which is kicked by RubyInstaller.
  • 19. Next Topic • Motivation • About winevt_c • Unicode Character handling • Using ANSI code page issues • Unicode Testing • Benchmark • Throughput Benchmark • Conclusion
  • 20. Unicode Testing: Environment • Windows 10 Home 1903 64bit • Japanese Edition (cp932, Windows-31J) • Writing Windows EventLog • Benchmark tool written in C# • Terminal: • PowerShell Core 6 on Windows Terminal(Preview) • Used Windows Terminal Profile is here
  • 21. Unicode Testing: Writing Events in .NET (picked up) // Alphabets // Non-ASCII symbols // Japanese // Thai // Cyrillic // Greek letters // Arabic alphabets // Devanagari // Unicod-ish Kaomoji // Emoji
  • 22. Unicode Testing: Writing Events PS> EventLogbencher.exe -w 10 -t 10 • 10 Events Written into Benchmark channel
  • 23. Unicode Testing: Configuration (old plugin) from_encoding/encoding parameters are needed to handle character encoding correctly but still unhandled characters exist. And using default read_interval: 2s.
  • 24. Unicode Testing: Configuration (new plugin) No need to specify from_encoding/encoding parameters. And new plugin always handles character encoding as UTF-8. And using default read_interval: 2s.
  • 25. Unicode Testing: Execution Log (old plugin) The following characters are broken • Symbol ⒻⓁⓉⒹ™​ • Thai • Arabic • Devanagari (Hindi) • Unicode contained Kaomoji • Emoji
  • 26. Unicode Testing: Execution Log (new plugin) The following characters are rendered • Symbol ⒻⓁⓉⒹ™ • Thai • Arabic (but slightly wrong rendered) • Devanagari (Hindi) • Unicode contained Kaomoji • Emoji
  • 27. Next Topic • Motivation • About winevt_c • Unicode Character handling • Using ANSI code page issues • Unicode Testing • Benchmark • Throughput Benchmark • Conclusion
  • 28. Benchmark • Collector Node • Windows 10 1809 2 vCPU 4GB Standard SSD • Benchmark tool written in C# • Aggregator Node • Ubuntu 18.04 2 vCPU 4GB Standard SSD • They are also Azure instances Write EventLog Collector Node Aggregator Node
  • 29. Benchmark: Flow Rate of Events • 1000000 events total • About 91 events per seconds PS> EventLogbencher.exe -w 100 -t 10000000 • 1 million Events Written into Benchmark channel
  • 30. Benchmark: Configuration (old) Collector node Aggregator node # or stdout
  • 31. Benchmark: Configuration (new) Collector node Aggregator node # or stdout
  • 32. Benchmark (old plugin) Flow rate: 91.34361 events per seconds
  • 33. Benchmark (new plugin) Flow rate: 91.30634 events per seconds
  • 34. Benchmark Result: in_windows_eventlog • Pros • 😀Low CPU usage • Cons • 😣High memory usage • 😫Incomplete Unicode handling
  • 35. Benchmark Result: in_windows_eventlog2 • Pros • 😀Low memory usage • 😋Unicode handling • 😊Immediately subscribe channel even if it's empty on subscribe • Cons • 😣Slightly higher CPU usage rather than old plugin's
  • 36. Next Topic • Motivation • About winevt_c • Unicode Character handling • Using ANSI code page issues • Unicode Testing • Benchmark • Throughput Benchmark • Conclusion
  • 37. Throughput Benchmark • Collector Node • Windows 10 1809 2 vCPU 4GB Standard SSD • Benchmark tool written in C# • Aggregator Node • Ubuntu 18.04 2 vCPU 4GB Standard SSD • They are also Azure instances Write EventLog Collector Node Aggregator Node
  • 38. Throughput Benchmark • 500000 events total • Increase flow rate of events step by step • PS> EventLogbencher.exe -w 50 -t 5000000 • 159.4378 events per seconds • PS> EventLogbencher.exe -w 30 -t 5000000 • 293.4133 events per seconds • PS> EventLogbencher.exe -w 20 -t 5000000 • 314.823 events per seconds • PS> EventLogbencher.exe -w 15 -t 5000000 • 321.7238 events per seconds • PS> EventLogbencher.exe -w 10 -t 5000000 • Stuck 🤢 • 598.8318 events per seconds • chunk bytes limit exceeds for an emitted event stream warning is generated from Fluentd....
  • 39. Throughput Benchmark: Configuration Collector node Aggregator node # or stdout
  • 44. Conclusion • The new plugin which is named in_windows_eventlog2 does... • Improve Unicode handling • Reduce memory consumption • Solve CPU spike after resuming operation • The new plugin might be going to solve... • Slightly higher CPU usage than old plugin's • The new plugin can handle about 300 events per second with default read interval.
  • 45. Epilogue: Current fluent-plugin-windows-eventlog status • The new plugin which is named in_windows_eventlog2 • Included fluent-plugin-windows-eventlog v0.3.0 • We want to hear more user voices and use cases • Installation is harder than the older one Let's enjoy Monitoring Windows EventLog! 😁