{"action":"created","comment":{"url":"https://api.github.com/repos/SeaCloudsEU/SeaCloudsPlatform/pulls/comments/45366058","id":45366058,"diff_hunk":"@@ -0,0 +1,30 @@\n+# SeaClouds - Monitoring DAM Generator Service\n+\n+The main goal of this service within the SeaClouds Platform is to provide an automatic mechanism to generate all the required monitoring artifacts for an application managed by SeaClouds. The Monitoring DAM Generator Service basically wraps the Monitoring DAM Generator Core.\n+Given an Abstract Deployment Plan (ADP) specified in the SeaClouds TOSCA syntax, the Monitoring DAM Generator Core builds up a set of monitoring rules to be then installed into Tower 4Clouds platform in order to retrieve and filter at runtime the monitring data sent by the deployed data collectors. The Monitoring DAM Generator Core also builds a set of bash scripts suitable to deploy all the necessary data collectors to collect the metrics requested by the generated monitoring rules. Finally it generates all the required pieces of yaml to be added into the SeaClouds DAM in order to be able to deploy the data collectors. This are generated according to the current DAM definition ( https://docs.google.com/document/d/1Z9RdaWn54IomgI-jCiw-tdutsCdDoHfk67PNUASOFmY/edit?disco=AAAAAiYOzxM ) and each TOSCA script is associated to one of the bash script previously generated.\n+\n+The Monitoring DAM Generator Service is a Dropwizard application and by default it listen on port 8177.\n+\n+# Usage\n+\n+The Monitoring DAM Generator basically exhibits three distinct endpoints:\n+\n+POST /damgen : this is the main endpoint which generates the application specific monitoring information. The request body must be the yaml representing the application ADP. It returns a JSON object with a single field containing an ID which can be used later on in order to retrieve from the Monitoring DAM Generator Service itself the generated rules and data collectors deployment scripts.\n+\n+GET /{applicationId}/generatedDam : this interface returns a JSON object in which each field represent a TOSCA based deployment script for one of the data collectors which have to be deployed with the application.\n+\n+GET /{applicationId}/monitoringRule : this interface return a JSON object with a single field contaning all the monitoring rules that have to be installed in order to monitor the application.\n+\n+In order to run the service one need to use the following lines of code:\n+\n+    export MONITOR_IP=<MONITORING-MANAGER-IP>    \n+    export MONITOR_PORT=<MONITORING-MANAGER-PORT>    ","path":"monitor/monitoring-dam-generator-service/README.md","position":21,"original_position":21,"commit_id":"57ebc67301ecb6ae3e3d2a223c30f1b466b639f0","original_commit_id":"b49ae75a20af86ae6d48bf4cac806220f3f07926","user":{"login":"adriannieto","id":7558172,"avatar_url":"https://avatars.githubusercontent.com/u/7558172?v=3","gravatar_id":"","url":"https://api.github.com/users/adriannieto","html_url":"https://github.com/adriannieto","followers_url":"https://api.github.com/users/adriannieto/followers","following_url":"https://api.github.com/users/adriannieto/following{/other_user}","gists_url":"https://api.github.com/users/adriannieto/gists{/gist_id}","starred_url":"https://api.github.com/users/adriannieto/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/adriannieto/subscriptions","organizations_url":"https://api.github.com/users/adriannieto/orgs","repos_url":"https://api.github.com/users/adriannieto/repos","events_url":"https://api.github.com/users/adriannieto/events{/privacy}","received_events_url":"https://api.github.com/users/adriannieto/received_events","type":"User","site_admin":false},"body":"@andreaturli If I understood well, @MicheleGuerriero is saying is the config.yml is retrieving the parameters from env variables, so they are needed to run the dam-generator. \r\n\r\nThis is not very precise as an user could replace the config.yml and write the endpoints manually, maybe he could rewrite the readme.md to tell the user that the dam-generator requires to setup the config.yml no matter if the variables come from env (by default) or the user input.","created_at":"2015-11-19T16:45:40Z","updated_at":"2015-11-19T16:45:40Z","html_url":"https://github.com/SeaCloudsEU/SeaCloudsPlatform/pull/150#discussion_r45366058","pull_request_url":"https://api.github.com/repos/SeaCloudsEU/SeaCloudsPlatform/pulls/150","_links":{"self":{"href":"https://api.github.com/repos/SeaCloudsEU/SeaCloudsPlatform/pulls/comments/45366058"},"html":{"href":"https://github.com/SeaCloudsEU/SeaCloudsPlatform/pull/150#discussion_r45366058"},"pull_request":{"href":"https://api.github.com/repos/SeaCloudsEU/SeaCloudsPlatform/pulls/150"}}},"pull_request":{"url":"https://api.github.com/repos/SeaCloudsEU/SeaCloudsPlatform/pulls/150","id":50414784,"html_url":"https://github.com/SeaCloudsEU/SeaCloudsPlatform/pull/150","diff_url":"https://github.com/SeaCloudsEU/SeaCloudsPlatform/pull/150.diff","patch_url":"https://github.com/SeaCloudsEU/SeaCloudsPlatform/pull/150.patch","issue_url":"https://api.github.com/repos/SeaCloudsEU/SeaCloudsPlatform/issues/150","number":150,"state":"open","locked":false,"title":"Added the monitoring-dam-generator and the monitoring-dam-generator-s…","user":{"login":"MicheleGuerriero","id":6441967,"avatar_url":"https://avatars.githubusercontent.com/u/6441967?v=3","gravatar_id":"","url":"https://api.github.com/users/MicheleGuerriero","html_url":"https://github.com/MicheleGuerriero","followers_url":"https://api.github.com/users/MicheleGuerriero/followers","following_url":"https://api.github.com/users/MicheleGuerriero/following{/other_user}","gists_url":"https://api.github.com/users/MicheleGuerriero/gists{/gist_id}","starred_url":"https://api.github.com/users/MicheleGuerriero/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/MicheleGuerriero/subscriptions","organizations_url":"https://api.github.com/users/MicheleGuerriero/orgs","repos_url":"https://api.github.com/users/MicheleGuerriero/repos","events_url":"https://api.github.com/users/MicheleGuerriero/events{/privacy}","received_events_url":"https://api.github.com/users/MicheleGuerriero/received_events","type":"User","site_admin":false},"body":"This PR adds the monitoring-dam-generator and the monitoring-dam-generator-service. The latter basically wraps the former in order to make it available as a service. Both the components have their own README.md in which you can find details on how they work and how they can be used. Mainly they allow to generate given an application ADP, a the set of monitoring rules and a set of data collector deployment scripts required for that application monitoring. The generation and management of IDs associated to the generated artifacts is the only feature specific to the service. If needed in the future, this could be moved to the core. The data collector TOSCA deployment scripts are generated according to the current DAM definition ( https://docs.google.com/document/d/1Z9RdaWn54IomgI-jCiw-tdutsCdDoHfk67PNUASOFmY/edit ).\r\n\r\nIssues:\r\n\r\n- the monitoring-dam-generator-service currently does not store the generated information in any persistent layer, but it just keep the state in memory. A next development will be to add a persistence solution.\r\n\r\n- the generated bash script required for the deployment of data collector are currently not uploaded anywhere, since we didn't define a remote repository for this kind of artifacts.\r\n\r\n","created_at":"2015-11-11T17:59:07Z","updated_at":"2015-11-19T16:45:40Z","closed_at":null,"merged_at":null,"merge_commit_sha":"0177279cb9754b6dab666b077d2d6044e4042ee1","assignee":null,"milestone":null,"commits_url":"https://api.github.com/repos/SeaCloudsEU/SeaCloudsPlatform/pulls/150/commits","review_comments_url":"https://api.github.com/repos/SeaCloudsEU/SeaCloudsPlatform/pulls/150/comments","review_comment_url":"https://api.github.com/repos/SeaCloudsEU/SeaCloudsPlatform/pulls/comments{/number}","comments_url":"https://api.github.com/repos/SeaCloudsEU/SeaCloudsPlatform/issues/150/comments","statuses_url":"https://api.github.com/repos/SeaCloudsEU/SeaCloudsPlatform/statuses/57ebc67301ecb6ae3e3d2a223c30f1b466b639f0","head":{"label":"MicheleGuerriero:feature/dam-monitoring-generation","ref":"feature/dam-monitoring-generation","sha":"57ebc67301ecb6ae3e3d2a223c30f1b466b639f0","user":{"login":"MicheleGuerriero","id":6441967,"avatar_url":"https://avatars.githubusercontent.com/u/6441967?v=3","gravatar_id":"","url":"https://api.github.com/users/MicheleGuerriero","html_url":"https://github.com/MicheleGuerriero","followers_url":"https://api.github.com/users/MicheleGuerriero/followers","following_url":"https://api.github.com/users/MicheleGuerriero/following{/other_user}","gists_url":"https://api.github.com/users/MicheleGuerriero/gists{/gist_id}","starred_url":"https://api.github.com/users/MicheleGuerriero/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/MicheleGuerriero/subscriptions","organizations_url":"https://api.github.com/users/MicheleGuerriero/orgs","repos_url":"https://api.github.com/users/MicheleGuerriero/repos","events_url":"https://api.github.com/users/MicheleGuerriero/events{/privacy}","received_events_url":"https://api.github.com/users/MicheleGuerriero/received_events","type":"User","site_admin":false},"repo":{"id":43554349,"name":"SeaCloudsPlatform","full_name":"MicheleGuerriero/SeaCloudsPlatform","owner":{"login":"MicheleGuerriero","id":6441967,"avatar_url":"https://avatars.githubusercontent.com/u/6441967?v=3","gravatar_id":"","url":"https://api.github.com/users/MicheleGuerriero","html_url":"https://github.com/MicheleGuerriero","followers_url":"https://api.github.com/users/MicheleGuerriero/followers","following_url":"https://api.github.com/users/MicheleGuerriero/following{/other_user}","gists_url":"https://api.github.com/users/MicheleGuerriero/gists{/gist_id}","starred_url":"https://api.github.com/users/MicheleGuerriero/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/MicheleGuerriero/subscriptions","organizations_url":"https://api.github.com/users/MicheleGuerriero/orgs","repos_url":"https://api.github.com/users/MicheleGuerriero/repos","events_url":"https://api.github.com/users/MicheleGuerriero/events{/privacy}","received_events_url":"https://api.github.com/users/MicheleGuerriero/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/MicheleGuerriero/SeaCloudsPlatform","description":"Seamless adaptive multi-cloud management of service-based applications","fork":true,"url":"https://api.github.com/repos/MicheleGuerriero/SeaCloudsPlatform","forks_url":"https://api.github.com/repos/MicheleGuerriero/SeaCloudsPlatform/forks","keys_url":"https://api.github.com/repos/MicheleGuerriero/SeaCloudsPlatform/keys{/key_id}","collaborators_url":"https://api.github.com/repos/MicheleGuerriero/SeaCloudsPlatform/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/MicheleGuerriero/SeaCloudsPlatform/teams","hooks_url":"https://api.github.com/repos/MicheleGuerriero/SeaCloudsPlatform/hooks","issue_events_url":"https://api.github.com/repos/MicheleGuerriero/SeaCloudsPlatform/issues/events{/number}","events_url":"https://api.github.com/repos/MicheleGuerriero/SeaCloudsPlatform/events","assignees_url":"https://api.github.com/repos/MicheleGuerriero/SeaCloudsPlatform/assignees{/user}","branches_url":"https://api.github.com/repos/MicheleGuerriero/SeaCloudsPlatform/branches{/branch}","tags_url":"https://api.github.com/repos/MicheleGuerriero/SeaCloudsPlatform/tags","blobs_url":"https://api.github.com/repos/MicheleGuerriero/SeaCloudsPlatform/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/MicheleGuerriero/SeaCloudsPlatform/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/MicheleGuerriero/SeaCloudsPlatform/git/refs{/sha}","trees_url":"https://api.github.com/repos/MicheleGuerriero/SeaCloudsPlatform/git/trees{/sha}","statuses_url":"https://api.github.com/repos/MicheleGuerriero/SeaCloudsPlatform/statuses/{sha}","languages_url":"https://api.github.com/repos/MicheleGuerriero/SeaCloudsPlatform/languages","stargazers_url":"https://api.github.com/repos/MicheleGuerriero/SeaCloudsPlatform/stargazers","contributors_url":"https://api.github.com/repos/MicheleGuerriero/SeaCloudsPlatform/contributors","subscribers_url":"https://api.github.com/repos/MicheleGuerriero/SeaCloudsPlatform/subscribers","subscription_url":"https://api.github.com/repos/MicheleGuerriero/SeaCloudsPlatform/subscription","commits_url":"https://api.github.com/repos/MicheleGuerriero/SeaCloudsPlatform/commits{/sha}","git_commits_url":"https://api.github.com/repos/MicheleGuerriero/SeaCloudsPlatform/git/commits{/sha}","comments_url":"https://api.github.com/repos/MicheleGuerriero/SeaCloudsPlatform/comments{/number}","issue_comment_url":"https://api.github.com/repos/MicheleGuerriero/SeaCloudsPlatform/issues/comments{/number}","contents_url":"https://api.github.com/repos/MicheleGuerriero/SeaCloudsPlatform/contents/{+path}","compare_url":"https://api.github.com/repos/MicheleGuerriero/SeaCloudsPlatform/compare/{base}...{head}","merges_url":"https://api.github.com/repos/MicheleGuerriero/SeaCloudsPlatform/merges","archive_url":"https://api.github.com/repos/MicheleGuerriero/SeaCloudsPlatform/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/MicheleGuerriero/SeaCloudsPlatform/downloads","issues_url":"https://api.github.com/repos/MicheleGuerriero/SeaCloudsPlatform/issues{/number}","pulls_url":"https://api.github.com/repos/MicheleGuerriero/SeaCloudsPlatform/pulls{/number}","milestones_url":"https://api.github.com/repos/MicheleGuerriero/SeaCloudsPlatform/milestones{/number}","notifications_url":"https://api.github.com/repos/MicheleGuerriero/SeaCloudsPlatform/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/MicheleGuerriero/SeaCloudsPlatform/labels{/name}","releases_url":"https://api.github.com/repos/MicheleGuerriero/SeaCloudsPlatform/releases{/id}","created_at":"2015-10-02T13:30:34Z","updated_at":"2015-10-02T13:30:38Z","pushed_at":"2015-11-13T16:14:40Z","git_url":"git://github.com/MicheleGuerriero/SeaCloudsPlatform.git","ssh_url":"git@github.com:MicheleGuerriero/SeaCloudsPlatform.git","clone_url":"https://github.com/MicheleGuerriero/SeaCloudsPlatform.git","svn_url":"https://github.com/MicheleGuerriero/SeaCloudsPlatform","homepage":"http://www.seaclouds-project.eu/","size":60768,"stargazers_count":0,"watchers_count":0,"language":"Java","has_issues":false,"has_downloads":true,"has_wiki":false,"has_pages":false,"forks_count":0,"mirror_url":null,"open_issues_count":0,"forks":0,"open_issues":0,"watchers":0,"default_branch":"master"}},"base":{"label":"SeaCloudsEU:master","ref":"master","sha":"506e2db665a1bccda5a8673c3f40ce56271f0d56","user":{"login":"SeaCloudsEU","id":6222853,"avatar_url":"https://avatars.githubusercontent.com/u/6222853?v=3","gravatar_id":"","url":"https://api.github.com/users/SeaCloudsEU","html_url":"https://github.com/SeaCloudsEU","followers_url":"https://api.github.com/users/SeaCloudsEU/followers","following_url":"https://api.github.com/users/SeaCloudsEU/following{/other_user}","gists_url":"https://api.github.com/users/SeaCloudsEU/gists{/gist_id}","starred_url":"https://api.github.com/users/SeaCloudsEU/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/SeaCloudsEU/subscriptions","organizations_url":"https://api.github.com/users/SeaCloudsEU/orgs","repos_url":"https://api.github.com/users/SeaCloudsEU/repos","events_url":"https://api.github.com/users/SeaCloudsEU/events{/privacy}","received_events_url":"https://api.github.com/users/SeaCloudsEU/received_events","type":"Organization","site_admin":false},"repo":{"id":15312233,"name":"SeaCloudsPlatform","full_name":"SeaCloudsEU/SeaCloudsPlatform","owner":{"login":"SeaCloudsEU","id":6222853,"avatar_url":"https://avatars.githubusercontent.com/u/6222853?v=3","gravatar_id":"","url":"https://api.github.com/users/SeaCloudsEU","html_url":"https://github.com/SeaCloudsEU","followers_url":"https://api.github.com/users/SeaCloudsEU/followers","following_url":"https://api.github.com/users/SeaCloudsEU/following{/other_user}","gists_url":"https://api.github.com/users/SeaCloudsEU/gists{/gist_id}","starred_url":"https://api.github.com/users/SeaCloudsEU/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/SeaCloudsEU/subscriptions","organizations_url":"https://api.github.com/users/SeaCloudsEU/orgs","repos_url":"https://api.github.com/users/SeaCloudsEU/repos","events_url":"https://api.github.com/users/SeaCloudsEU/events{/privacy}","received_events_url":"https://api.github.com/users/SeaCloudsEU/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/SeaCloudsEU/SeaCloudsPlatform","description":"Seamless adaptive multi-cloud management of service-based applications","fork":false,"url":"https://api.github.com/repos/SeaCloudsEU/SeaCloudsPlatform","forks_url":"https://api.github.com/repos/SeaCloudsEU/SeaCloudsPlatform/forks","keys_url":"https://api.github.com/repos/SeaCloudsEU/SeaCloudsPlatform/keys{/key_id}","collaborators_url":"https://api.github.com/repos/SeaCloudsEU/SeaCloudsPlatform/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/SeaCloudsEU/SeaCloudsPlatform/teams","hooks_url":"https://api.github.com/repos/SeaCloudsEU/SeaCloudsPlatform/hooks","issue_events_url":"https://api.github.com/repos/SeaCloudsEU/SeaCloudsPlatform/issues/events{/number}","events_url":"https://api.github.com/repos/SeaCloudsEU/SeaCloudsPlatform/events","assignees_url":"https://api.github.com/repos/SeaCloudsEU/SeaCloudsPlatform/assignees{/user}","branches_url":"https://api.github.com/repos/SeaCloudsEU/SeaCloudsPlatform/branches{/branch}","tags_url":"https://api.github.com/repos/SeaCloudsEU/SeaCloudsPlatform/tags","blobs_url":"https://api.github.com/repos/SeaCloudsEU/SeaCloudsPlatform/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/SeaCloudsEU/SeaCloudsPlatform/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/SeaCloudsEU/SeaCloudsPlatform/git/refs{/sha}","trees_url":"https://api.github.com/repos/SeaCloudsEU/SeaCloudsPlatform/git/trees{/sha}","statuses_url":"https://api.github.com/repos/SeaCloudsEU/SeaCloudsPlatform/statuses/{sha}","languages_url":"https://api.github.com/repos/SeaCloudsEU/SeaCloudsPlatform/languages","stargazers_url":"https://api.github.com/repos/SeaCloudsEU/SeaCloudsPlatform/stargazers","contributors_url":"https://api.github.com/repos/SeaCloudsEU/SeaCloudsPlatform/contributors","subscribers_url":"https://api.github.com/repos/SeaCloudsEU/SeaCloudsPlatform/subscribers","subscription_url":"https://api.github.com/repos/SeaCloudsEU/SeaCloudsPlatform/subscription","commits_url":"https://api.github.com/repos/SeaCloudsEU/SeaCloudsPlatform/commits{/sha}","git_commits_url":"https://api.github.com/repos/SeaCloudsEU/SeaCloudsPlatform/git/commits{/sha}","comments_url":"https://api.github.com/repos/SeaCloudsEU/SeaCloudsPlatform/comments{/number}","issue_comment_url":"https://api.github.com/repos/SeaCloudsEU/SeaCloudsPlatform/issues/comments{/number}","contents_url":"https://api.github.com/repos/SeaCloudsEU/SeaCloudsPlatform/contents/{+path}","compare_url":"https://api.github.com/repos/SeaCloudsEU/SeaCloudsPlatform/compare/{base}...{head}","merges_url":"https://api.github.com/repos/SeaCloudsEU/SeaCloudsPlatform/merges","archive_url":"https://api.github.com/repos/SeaCloudsEU/SeaCloudsPlatform/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/SeaCloudsEU/SeaCloudsPlatform/downloads","issues_url":"https://api.github.com/repos/SeaCloudsEU/SeaCloudsPlatform/issues{/number}","pulls_url":"https://api.github.com/repos/SeaCloudsEU/SeaCloudsPlatform/pulls{/number}","milestones_url":"https://api.github.com/repos/SeaCloudsEU/SeaCloudsPlatform/milestones{/number}","notifications_url":"https://api.github.com/repos/SeaCloudsEU/SeaCloudsPlatform/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/SeaCloudsEU/SeaCloudsPlatform/labels{/name}","releases_url":"https://api.github.com/repos/SeaCloudsEU/SeaCloudsPlatform/releases{/id}","created_at":"2013-12-19T13:23:54Z","updated_at":"2015-10-06T08:08:53Z","pushed_at":"2015-11-19T15:35:33Z","git_url":"git://github.com/SeaCloudsEU/SeaCloudsPlatform.git","ssh_url":"git@github.com:SeaCloudsEU/SeaCloudsPlatform.git","clone_url":"https://github.com/SeaCloudsEU/SeaCloudsPlatform.git","svn_url":"https://github.com/SeaCloudsEU/SeaCloudsPlatform","homepage":"http://www.seaclouds-project.eu/","size":122733,"stargazers_count":10,"watchers_count":10,"language":"Java","has_issues":true,"has_downloads":true,"has_wiki":false,"has_pages":false,"forks_count":16,"mirror_url":null,"open_issues_count":12,"forks":16,"open_issues":12,"watchers":10,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/SeaCloudsEU/SeaCloudsPlatform/pulls/150"},"html":{"href":"https://github.com/SeaCloudsEU/SeaCloudsPlatform/pull/150"},"issue":{"href":"https://api.github.com/repos/SeaCloudsEU/SeaCloudsPlatform/issues/150"},"comments":{"href":"https://api.github.com/repos/SeaCloudsEU/SeaCloudsPlatform/issues/150/comments"},"review_comments":{"href":"https://api.github.com/repos/SeaCloudsEU/SeaCloudsPlatform/pulls/150/comments"},"review_comment":{"href":"https://api.github.com/repos/SeaCloudsEU/SeaCloudsPlatform/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/SeaCloudsEU/SeaCloudsPlatform/pulls/150/commits"},"statuses":{"href":"https://api.github.com/repos/SeaCloudsEU/SeaCloudsPlatform/statuses/57ebc67301ecb6ae3e3d2a223c30f1b466b639f0"}}}}