八、Netdata简要分析
8.1 Netdata的主要特点有:
1.优美的界面:bootstrap框架下的控制界面
2.自定义的控制界面:你可以使用简单的HTML代码去自定义控制界面(不需要使用javascript)
3.极其的快速而高效:程序使用C进行编写(默认安装下,预计只有2%的单核CPU使用率和少许的内存使用率)
4.零配置:你只需要去安装它,接着它就会自动地监测一切数据
5.零依赖:它的静态网络文件和网络接口拥有自己的网络服务器
6.可扩展:用它自身的插件API(可以使用许多方式来制作它的插件,从bash到node.js),你可以检测任何可以衡量的数据。
7.可嵌入:它可以在任何Linux内核可以运行的地方运行
8.2 Netdata源码树如下所示:
walker@HiKey:~/software/netdata$ tree
.
├── CMakeLists.txt
├── COPYING
├── ChangeLog
├── LICENSE.md
├── Makefile
├── Makefile.am
├── Makefile.in
├── README.md
├── aclocal.m4
├── autogen.sh
├── autom4te.cache
│ ├── output.0
│ ├── output.1
│ ├── requests
│ ├── traces.0
│ └── traces.1
├── build
│ └── subst.inc
├── charts.d
│ ├── Makefile
│ ├── Makefile.am
│ ├── Makefile.in
│ ├── README.md
│ ├── airsearches.chart.sh
│ ├── ap.chart.sh
│ ├── apache.chart.sh
│ ├── cpu_apps.chart.sh
│ ├── cpufreq.chart.sh
│ ├── crsproxy.chart.sh
│ ├── example.chart.sh
│ ├── load_average.chart.sh
│ ├── mem_apps.chart.sh
│ ├── mysql.chart.sh
│ ├── nginx.chart.sh
│ ├── nut.chart.sh
│ ├── opensips.chart.sh
│ ├── phpfpm.chart.sh
│ ├── postfix.chart.sh
│ ├── sensors.chart.sh
│ ├── squid.chart.sh
│ └── tomcat.chart.sh
├── compile
├── conf.d
│ ├── Makefile
│ ├── Makefile.am
│ ├── Makefile.in
│ ├── apps_groups.conf
│ └── charts.d.conf
├── config.guess
├── config.h
├── config.h.in
├── config.log
├── config.status
├── config.sub
├── configure
├── configure.ac
├── contrib
│ ├── Makefile
│ ├── Makefile.am
│ ├── Makefile.in
│ ├── README.md
│ └── debian
│ ├── changelog
│ ├── compat
│ ├── control
│ ├── copyright
│ ├── netdata.conf
│ ├── netdata.default
│ ├── netdata.docs
│ ├── netdata.init
│ ├── netdata.install
│ ├── netdata.lintian-overrides
│ ├── netdata.postinst.in
│ ├── netdata.postrm
│ ├── netdata.service
│ ├── rules
│ └── source
│ └── format
├── depcomp
├── hooks
│ ├── post-commit
│ ├── pre-commit
│ └── prepare-commit-msg
├── install-sh
├── m4
│ └── ax_pthread.m4
├── missing
├── netdata-9999.ebuild
├── netdata-installer.log
├── netdata-installer.sh
├── netdata-uninstaller.sh
├── netdata.spec
├── netdata.spec.in
├── node.d
│ ├── Makefile
│ ├── Makefile.am
│ ├── Makefile.in
│ ├── README.md
│ ├── named.node.js
│ ├── node_modules
│ │ ├── asn1.js
│ │ ├── ber
│ │ │ ├── errors.js
│ │ │ ├── index.js
│ │ │ ├── reader.js
│ │ │ ├── types.js
│ │ │ └── writer.js
│ │ ├── extend.js
│ │ ├── net-snmp.js
│ │ ├── netdata.js
│ │ ├── node-int64.js
│ │ └── pixl-xml.js
│ ├── sma_webbox.node.js
│ └── snmp.node.js
├── packaging
│ ├── README.md
│ ├── check-files
│ ├── git-build
│ ├── packaging.functions
│ ├── release-msg
│ ├── tar-compare
│ └── update-tags
├── plugins.d
│ ├── Makefile
│ ├── Makefile.am
│ ├── Makefile.in
│ ├── README.md
│ ├── charts.d.dryrun-helper.sh
│ ├── charts.d.plugin
│ ├── loopsleepms.sh.inc
│ ├── node.d.plugin
│ └── tc-qos-helper.sh
├── src
│ ├── Makefile
│ ├── Makefile.am
│ ├── Makefile.in
│ ├── appconfig.c
│ ├── appconfig.h
│ ├── apps_plugin.c
│ ├── avl.c
│ ├── avl.h
│ ├── common.c
│ ├── common.h
│ ├── daemon.c
│ ├── daemon.h
│ ├── dictionary.c
│ ├── dictionary.h
│ ├── global_statistics.c
│ ├── global_statistics.h
│ ├── log.c
│ ├── log.h
│ ├── main.c
│ ├── main.h
│ ├── plugin_checks.c
│ ├── plugin_checks.h
│ ├── plugin_idlejitter.c
│ ├── plugin_idlejitter.h
│ ├── plugin_nfacct.c
│ ├── plugin_nfacct.h
│ ├── plugin_proc.c
│ ├── plugin_proc.h
│ ├── plugin_tc.c
│ ├── plugin_tc.h
│ ├── plugins_d.c
│ ├── plugins_d.h
│ ├── popen.c
│ ├── popen.h
│ ├── proc_diskstats.c
│ ├── proc_interrupts.c
│ ├── proc_loadavg.c
│ ├── proc_meminfo.c
│ ├── proc_net_dev.c
│ ├── proc_net_ip_vs_stats.c
│ ├── proc_net_netstat.c
│ ├── proc_net_rpc_nfsd.c
│ ├── proc_net_snmp.c
│ ├── proc_net_snmp6.c
│ ├── proc_net_stat_conntrack.c
│ ├── proc_net_stat_synproxy.c
│ ├── proc_softirqs.c
│ ├── proc_stat.c
│ ├── proc_sys_kernel_random_entropy_avail.c
│ ├── proc_vmstat.c
│ ├── procfile.c
│ ├── procfile.h
│ ├── rrd.c
│ ├── rrd.h
│ ├── rrd2json.c
│ ├── rrd2json.h
│ ├── storage_number.c
│ ├── storage_number.h
│ ├── sys_kernel_mm_ksm.c
│ ├── unit_test.c
│ ├── unit_test.h
│ ├── url.c
│ ├── url.h
│ ├── web_buffer.c
│ ├── web_buffer.h
│ ├── web_client.c
│ ├── web_client.h
│ ├── web_server.c
│ └── web_server.h
├── stamp-h1
├── system
│ ├── Makefile
│ ├── Makefile.am
│ ├── Makefile.in
│ ├── netdata-init-d.in
│ ├── netdata-openrc.in
│ ├── netdata.conf
│ ├── netdata.logrotate.in
│ └── netdata.service.in
├── tests
│ └── stress.sh
└── web
├── Makefile
├── Makefile.am
├── Makefile.in
├── css
│ ├── bootstrap-theme.min.css
│ ├── bootstrap-toggle.min.css
│ ├── bootstrap.min.css
│ ├── bootstrap.slate.min.css
│ ├── c3.min.css
│ ├── font-awesome.min.css
│ └── morris.css
├── dashboard.css
├── dashboard.html
├── dashboard.js
├── dashboard.slate.css
├── demo.html
├── demo2.html
├── demosites.html
├── favicon.ico
├── fonts
│ ├── FontAwesome.otf
│ ├── fontawesome-webfont.eot
│ ├── fontawesome-webfont.svg
│ ├── fontawesome-webfont.ttf
│ ├── fontawesome-webfont.woff
│ ├── fontawesome-webfont.woff2
│ ├── glyphicons-halflings-regular.eot
│ ├── glyphicons-halflings-regular.svg
│ ├── glyphicons-halflings-regular.ttf
│ ├── glyphicons-halflings-regular.woff
│ └── glyphicons-halflings-regular.woff2
├── images
│ ├── README.md
│ ├── seo-performance-114.png
│ ├── seo-performance-128.png
│ ├── seo-performance-16.png
│ ├── seo-performance-24.png
│ ├── seo-performance-256.png
│ ├── seo-performance-32.png
│ ├── seo-performance-48.png
│ ├── seo-performance-512.png
│ ├── seo-performance-64.png
│ ├── seo-performance-72.png
│ ├── seo-performance-multi-size.icns
│ └── seo-performance-multi-size.ico
├── index.html
├── lib
│ ├── ElementQueries.js
│ ├── ResizeSensor.js
│ ├── bootstrap-toggle.min.js
│ ├── bootstrap.min.js
│ ├── c3.min.js
│ ├── d3.min.js
│ ├── dygraph-combined.js
│ ├── dygraph-smooth-plotter.js
│ ├── gauge.min.js
│ ├── jquery-1.12.0.min.js
│ ├── jquery.easypiechart.min.js
│ ├── jquery.nanoscroller.min.js
│ ├── jquery.peity.min.js
│ ├── jquery.sparkline.min.js
│ ├── morris.min.js
│ └── raphael-min.js
├── netdata-swagger.json
├── netdata-swagger.yaml
├── old
│ ├── datasource.html
│ ├── index.html
│ ├── index.js
│ ├── netdata.js
│ └── theme.css
├── robots.txt
├── tv.html
└── version.txt
23 directories, 266 files
0