{"id":43218454,"url":"https://github.com/nttcom/ecl2mond","last_synced_at":"2026-02-01T08:30:59.178Z","repository":{"id":57608756,"uuid":"98384263","full_name":"nttcom/ecl2mond","owner":"nttcom","description":"ECL2.0 Monitoring - Custom Meter Agent","archived":false,"fork":false,"pushed_at":"2017-08-03T04:40:43.000Z","size":5146,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":13,"default_branch":"master","last_synced_at":"2025-04-06T08:35:36.039Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/nttcom.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2017-07-26T05:47:10.000Z","updated_at":"2017-08-31T13:14:46.000Z","dependencies_parsed_at":"2022-08-30T09:01:24.611Z","dependency_job_id":null,"html_url":"https://github.com/nttcom/ecl2mond","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/nttcom/ecl2mond","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nttcom%2Fecl2mond","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nttcom%2Fecl2mond/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nttcom%2Fecl2mond/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nttcom%2Fecl2mond/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/nttcom","download_url":"https://codeload.github.com/nttcom/ecl2mond/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nttcom%2Fecl2mond/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28974122,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-01T08:16:14.655Z","status":"ssl_error","status_checked_at":"2026-02-01T08:06:51.373Z","response_time":56,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2026-02-01T08:30:59.097Z","updated_at":"2026-02-01T08:30:59.172Z","avatar_url":"https://github.com/nttcom.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# ecl2mond - ECL2.0 Monitoring Custom meter agent\nECL2.0 Custom meter agent (a.k.a ecl2mond) is a support tool for NTT Communications' Enterprise Cloud 2.0 Monitoring service.\n\n## Purpose\n\nThis agent enables you to accumulate and visualize usage data which you want automatically in ECL2.0 Monitoring service. The agent runs on a Linux machine and collects usage data of some kinds of computing resources. Moreover, the agent sends the usage data periodically to ECL2.0 Monitoring service by using Monitoring API.\n\n## Target\n\nLinux servers running on or connect with ECL2.0 environment\n\n## List of collectable usage data\n\nNo. |   OS  | Resource Category |                  Meter Name                   |               Description               |     Unit     | Meter Type | Data Source\n----|-------|-------------------|-----------------------------------------------|-----------------------------------------|--------------|------------|-------------\n 1  | Linux | CPU               | cpu.user.percents                             | CPU Usage (user mode)                   | Percent      | delta      | /proc/stat\n 2  | Linux | CPU               | cpu.nice.percents                             | CPU Usage (user mode with low priority) | Percent      | delta      | /proc/stat\n 3  | Linux | CPU               | cpu.system.percents                           | CPU Usage (system mode)                 | Percent      | delta      | /proc/stat\n 4  | Linux | CPU               | cpu.idle.percents                             | CPU Usage (idle task)                   | Percent      | delta      | /proc/stat\n 5  | Linux | CPU               | cpu.iowait.percents                           | CPU Usage (I/O wait)                    | Percent      | delta      | /proc/stat\n 6  | Linux | CPU               | cpu.irq.percents                              | CPU Usage (hard irq)                    | Percent      | delta      | /proc/stat\n 7  | Linux | CPU               | cpu.softirq.percents                          | CPU Usage (soft irq)                    | Percent      | delta      | /proc/stat\n 8  | Linux | CPU               | cpu.steal.percents                            | CPU Usage (stolen time)                 | Percent      | delta      | /proc/stat\n 9  | Linux | CPU               | cpu.guest.percents                            | CPU Usage (vCPU for guest OS)           | Percent      | delta      | /proc/stat\n 10 | Linux | Disk              | disk.{device name}.reads.completed.count      | Disk Read I/O (completed successfully)  | Count        | delta      | /proc/diskstats\n 11 | Linux | Disk              | disk.{device name}.reads.merged.count         | Disk Read I/O (merged)                  | Count        | delta      | /proc/diskstats\n 12 | Linux | Disk              | disk.{device name}.reads.sectors.count        | Disk Read Sectors                       | Count        | delta      | /proc/diskstats\n 13 | Linux | Disk              | disk.{device name}.reads.milliseconds         | Disk Read milliseconds                  | millisecond  | delta      | /proc/diskstats\n 14 | Linux | Disk              | disk.{device name}.writes.completed.count     | Disk Write I/O (completed successfully) | Count        | delta      | /proc/diskstats\n 15 | Linux | Disk              | disk.{device name}.writes.merged.count        | Disk Write I/O (merged)                 | Count        | delta      | /proc/diskstats\n 16 | Linux | Disk              | disk.{device name}.writes.sectors.count       | Disk Write Sectors                      | Count        | delta      | /proc/diskstats\n 17 | Linux | Disk              | disk.{device name}.writes.millisecond         | Disk Write milliseconds                 | millisecond  | delta      | /proc/diskstats\n 18 | Linux | Disk              | disk.{device name}.currently.ios.count        | Current Disk I/O                        | Count        | delta      | /proc/diskstats\n 19 | Linux | Disk              | disk.{device name}.ios.milliseconds           | Disk I/O milliseconds                   | millisecond  | delta      | /proc/diskstats\n 20 | Linux | Disk              | disk.{device name}.weighted.ios.milliseconds  | Weighted Disk I/O milliseconds          | millisecond  | delta      | /proc/diskstats\n 21 | Linux | Network           | network.{nwif name}.receive.bytes             | IF Received bytes                       | Byte         | delta      | /proc/net/dev\n 22 | Linux | Network           | network.{nwif name}.receive.packets.count     | IF Received packets                     | Count        | delta      | /proc/net/dev\n 23 | Linux | Network           | network.{nwif name}.receive.errs.count        | IF Received error packets               | Count        | delta      | /proc/net/dev\n 24 | Linux | Network           | network.{nwif name}.receive.drop.count        | IF Received and dropped packets         | Count        | delta      | /proc/net/dev\n 25 | Linux | Network           | network.{nwif name}.receive.fifo.count        | IF Received fifo error packets          | Count        | delta      | /proc/net/dev\n 26 | Linux | Network           | network.{nwif name}.receive.frame.count       | IF Received frame error packets         | Count        | delta      | /proc/net/dev\n 27 | Linux | Network           | network.{nwif name}.receive.compressed.count  | IF Received compressed packets          | Count        | delta      | /proc/net/dev\n 28 | Linux | Network           | network.{nwif name}.receive.multicast.count   | IF Received multicast packets           | Count        | delta      | /proc/net/dev\n 29 | Linux | Network           | network.{nwif name}.transmit.bytes            | IF Transmitted bytes                    | Byte         | delta      | /proc/net/dev\n 30 | Linux | Network           | network.{nwif name}.transmit.packets.count    | IF Transmitted packets                  | Count        | delta      | /proc/net/dev\n 31 | Linux | Network           | network.{nwif name}.transmit.errs.count       | IF Transmitted error packets            | Count        | delta      | /proc/net/dev\n 32 | Linux | Network           | network.{nwif name}.transmit.drop.count       | IF Transmitted and dropped packets      | Count        | delta      | /proc/net/dev\n 33 | Linux | Network           | network.{nwif name}.transmit.fifo.count       | IF Transmitted fifo error packets       | Count        | delta      | /proc/net/dev\n 34 | Linux | Network           | network.{nwif name}.transmit.coll.count       | IF Transmitted collision error packets  | Count        | delta      | /proc/net/dev\n 35 | Linux | Network           | network.{nwif name}.transmit.carrier.count    | IF Transmitted carrier loss packets     | Count        | delta      | /proc/net/dev\n 36 | Linux | Network           | network.{nwif name}.transmit.compressed.count | IF Transmitted compressed packets       | Count        | delta      | /proc/net/dev\n 37 | Linux | Load Average      | loadavg.1.count                               | Load average (1 min)                    | Count        | gauge      | /proc/loadavg\n 38 | Linux | Load Average      | loadavg.5.count                               | Load average (5 min)                    | Count        | gauge      | /proc/loadavg\n 39 | Linux | Load Average      | loadavg.15.count                              | Load average (15 min)                   | Count        | gauge      | /proc/loadavg\n 40 | Linux | Memory            | memory.memtotal.kilobytes                     | Total memory                            | kilobytes    | gauge      | /proc/meminfo (MemTotal)\n 41 | Linux | Memory            | memory.memfree.kilobytes                      | Memory left unused                      | kilobytes    | gauge      | /proc/meminfo (MemFree)\n 42 | Linux | Memory            | memory.buffers.kilobytes                      | Memory used for file buffers            | kilobytes    | gauge      | /proc/meminfo (Buffers)\n 43 | Linux | Memory            | memory.cached.kilobytes                       | Memory used as cache                    | kilobytes    | gauge      | /proc/meminfo (Cached)\n 44 | Linux | Memory            | memory.swapcached.kilobytes                   | Memory used as swap cache               | kilobytes    | gauge      | /proc/meminfo (SwapCached)\n 45 | Linux | Memory            | memory.active.kilobytes                       | Memory used actively                    | kilobytes    | gauge      | /proc/meminfo (Active)\n 46 | Linux | Memory            | memory.inactive.kilobytes                     | Memory used inactively                  | kilobytes    | gauge      | /proc/meminfo (Inactive)\n 47 | Linux | Memory            | memory.swaptotal.kilobytes                    | Total amount of swap available          | kilobytes    | gauge      | /proc/meminfo (SwapTotal)\n 48 | Linux | Memory            | memory.swapfree.kilobytes                     | Total amount of swap free               | kilobytes    | gauge      | /proc/meminfo (SwapFree)\n 49 | Linux | Memory            | memory.usedtotal.kilobytes                    | Total used Memory                       | kilobytes    | gauge      | /proc/meminfo (MemTotal - (MemFree + Buffers + Cached))\n\n# How to build packages\n\n## Build on CentOS\n\n### Preparation\n\nEdit your `~/.bash_profile`\n\n```\nexport GOROOT=/usr/local/go\nexport GOPATH=$HOME\nexport GHQ_ROOT=$GOPATH/src\nPATH=$PATH:$GOROOT/bin:$GOPATH/bin\n```\n\nInstall golang\n\n```\n# Download\nwget https://storage.googleapis.com/golang/go1.8.linux-amd64.tar.gz\n\n# Extract\nsudo tar zxvf go1.8.linux-amd64.tar.gz -C /usr/local/\n\n# Modify the file owner\nsudo chown $USER:$USER /usr/local/go/pkg/\n```\n\nInstall docker\n\n```\n# Add epel repository\nsudo yum install epel-release\n\n# Install docker-io\nsudo yum install docker-io --enablerepo=epel\n\n# Create docker group\nsudo groupadd docker\nsudo gpasswd -a $USER docker\nsudo usermod -g docker $USER\nsudo service docker start\n\n# Logout and relogin to enable the group\nexit\n```\n\nInstall ghq\n\n```\ngo get github.com/motemen/ghq\n```\n\nClone this repository\n\n```\n# clone to $HOME/src/github.com/nttcom/ecl2mond/ by using ghq\nghq get git@github.com:nttcom/ecl2mond.git\n```\n\n### Generate the packages\n\nExecute the following commands at `$HOME/src/github.com/nttcom/ecl2mond/` directory and generate the packages.\n(The first run will take a long time.)\n\n```\nmake deps\n\nmake package-all-docker\n\n# generated packages are here\nls $HOME/src/github.com/nttcom/ecl2mond/_packaging/output\n```\n\n# How to install\n\n## Supported Platform\n\n* Linux\n    * CentOS7.1\n    * Ubuntu16.04LTS\n\nAbove is the list of tested platforms. `ecl2mond` should work on other linux platforms.\n\n\n## Install procedure\n\n### Add nttcom package repository\n\n#### RHEL /  CentOS\n\nCreate `/etc/yum.repos.d/ecl2mond.repo` and edit as follows.\n\n```\n[ecl2mond]\nname=Enterprise Cloud Custom Meter Agent\nbaseurl=http://repo.ecl.ntt.com/packages/rpms\nenabled=1\ngpgcheck=1\n```\n\nDownload and import the public key for signature verification.\n\n```\ncurl -O http://repo.ecl.ntt.com/packages/GPG-KEY-ecl; rpm --import GPG-KEY-ecl\n```\n\nInstall by using `yum`, a package management tool.\n\n```\nyum install ecl2mond\n```\n\n#### Debian / Ubuntu\n\nCreate `/etc/apt/sources.list.d/ecl2mond.list` and edit as follows.\n\n```\ndeb http://repo.ecl.ntt.com/packages/debs ./\n```\n\nDownload and import the public key for signature verification.\n\n```\ncurl -O http://repo.ecl.ntt.com/packages/GPG-KEY-ecl; apt-key add GPG-KEY-ecl\n```\n\nInstall by using `apt`, a package management tool.\n\n```\napt-get update; apt-cache search ecl2mond\napt-get install ecl2mond\n```\n\n(Additional)\nIf the `apt-transport-https` package is not installed, you need to install it.\n\n```\napt-get update; apt-cache search apt-transport-https\napt-get install apt-transport-https\n```\n\n# Configuration and default\n\nThe `ecl2mond` configuration file is generated at `/etc/ecl2mond/ecl2mond.conf` .\nPlease refer to the following description and modify the parameters.\n\n## Details of the configuration parameters\n\nParameter name | Required | Data type    | Default value | Value range                                                                                                                          | Description\n---------------|----------|--------------|---------------|--------------------------------------------------------------------------------------------------------------------------------------|----------------------------------------------------------------------------------------------------\nmonitoringUrl  | yes      | String       | N/A           |                                                                                                                                      | Monitoring API Endpoint \u003cbr\u003e (Set your region's one.)\ninterval       |          | Integer      | 5             | 1 - 3599                                                                                                                             | Interval of data collection and sending (minute)\nauthUrl        | yes      | String       | N/A           |                                                                                                                                      |\nauthInterval   |          | Integer      | 60            | 5 - 3599                                                                                                                             | Interval for keystone token refreshing (minute) \u003cbr\u003e (Basically it should be remained the default.)\nresourceId     | yes      | String       | N/A           |                                                                                                                                      | Resource ID of the Monitoring target resource\ntenantId       | yes      | String       | N/A           |                                                                                                                                      | Your tenant ID\nuserName       | yes      | String       | N/A           |                                                                                                                                      | Your API key\npassword       | yes      | String       | N/A           |                                                                                                                                      | Your API secret key\nmeters         | yes      | String array | N/A           | Please refer to [Monitoring service description](https://ecl.ntt.com/documents/service-descriptions/monitoring/monitoring.html#id9). | Meter names you want to monitor\nlogLevel       |          | String       | Info          | \"TRACE\", \"DEBUG\", \"INFO\", \"WARNING\", \"ERROR\", \"FATAL\"                                                                                | Log level\n\n## Sample configuration\n\n```\nmonitoringUrl: Enter the ECL2.0 Monitoring API Endpoint URL\n# ex. \"https://monitoring-jp1-ecl.api.ntt.com/\"\nmonitoringUrl = \"https://monitoring-jp1-ecl.api.ntt.com/\"\n\n# interval: Specify the time interval to collect and send the value by the agent\n# [ 1 - 3599 ] minutes, default: 5\ninterval = 5\n\n# authUrl: Enter the ECL2.0 Keystone API Endpoint URL\n# ex. \"https://keystone-jp1-ecl.api.ntt.com/\"\nauthUrl = \"https://keystone-jp1-ecl.api.ntt.com/\"\n\n# authInterval: Specify the time interval to refresh auth token\n# [ 5 - 3599 ] min, default: 60\nauthInterval = 60\n\n# resourceId: Enter the target resource id for custom meter creation\n# ex. nova_12ab-12cd56gh9-ab34ef78i-34cd\nresourceId = \"nova_6708b574-434d-4476-b8c1-2a128ab5edc1\"\n\n# tenantId: Enter your tenant id\ntenantId = \"\u003cyour tenant id\u003e\"\n\n# userName: Enter your API key\nuserName = \"\u003cyour API key\u003e\"\n\n# password: Enter your API secret key\npassword = \"\u003cyour API secret key\u003e\"\n\nmeters = [\n  \"loadavg.1.count\",\n]\n```\n\n# Usage\n\n```\nUsage: ecl2mond [options]\n\noptions:\n  -m, --mode {run(default)|run-once|dry-run}\n      set mode\n  -c, --config\n      set config file\n  -h, --help\n      show help message\n```\n\nFor operation check\n\n```\n# dry-run (run with data collection only)\necl2mond -m dry-run\n\n# run-once (collect data and send it to Monitoring only once)\necl2mond -m run-once\n```\n\nStart `ecl2mond` in the background\n\n```\nservice ecl2mond start\n```\n\nStop `ecl2mond`\n\n```\nservice ecl2mond stop\n```\n\nCheck the status of `ecl2mond`\n\n```\nservice ecl2mond status\n```\n\n# Logs\n\nWhen `ecl2mond` is started in the background, a log is output to `/var/log/ecl2mond.log`.\n\n# Documentation\n\nPlease find more usage documentation [here](https://ecl.ntt.com/documents/service-descriptions/monitoring/monitoring.html) or [here](https://ecl.ntt.com/documents/tutorials/rsts/Monitoring/custom_meter/index.html).\n\n# Support\n\nECL2.0 users can raise requests via NTT Communication's ticket portal.\n\n# Contact\n\n* ecl2-mon-app-cl@ntt.com\n\n# Contributing\n\nPlease contribute [Github Flow](https://guides.github.com/introduction/flow/ \"Github Flow\")  -  Create a branch, add commits, and [open a pull request](https://github.com/nttcom/ecl2mond/compare/ \"Pull Request\").\n\n# License\n\n* Apache 2.0\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnttcom%2Fecl2mond","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fnttcom%2Fecl2mond","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnttcom%2Fecl2mond/lists"}