{"action":"created","issue":{"url":"https://api.github.com/repos/kiali/kiali/issues/143","repository_url":"https://api.github.com/repos/kiali/kiali","labels_url":"https://api.github.com/repos/kiali/kiali/issues/143/labels{/name}","comments_url":"https://api.github.com/repos/kiali/kiali/issues/143/comments","events_url":"https://api.github.com/repos/kiali/kiali/issues/143/events","html_url":"https://github.com/kiali/kiali/pull/143","id":311569555,"number":143,"title":"KIALI-173 Show nodes that do not yet get traffic","user":{"login":"lucasponce","id":1662329,"avatar_url":"https://avatars0.githubusercontent.com/u/1662329?v=4","gravatar_id":"","url":"https://api.github.com/users/lucasponce","html_url":"https://github.com/lucasponce","followers_url":"https://api.github.com/users/lucasponce/followers","following_url":"https://api.github.com/users/lucasponce/following{/other_user}","gists_url":"https://api.github.com/users/lucasponce/gists{/gist_id}","starred_url":"https://api.github.com/users/lucasponce/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/lucasponce/subscriptions","organizations_url":"https://api.github.com/users/lucasponce/orgs","repos_url":"https://api.github.com/users/lucasponce/repos","events_url":"https://api.github.com/users/lucasponce/events{/privacy}","received_events_url":"https://api.github.com/users/lucasponce/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":17,"created_at":"2018-04-05T11:16:39Z","updated_at":"2018-04-09T14:11:31Z","closed_at":null,"author_association":"CONTRIBUTOR","pull_request":{"url":"https://api.github.com/repos/kiali/kiali/pulls/143","html_url":"https://github.com/kiali/kiali/pull/143","diff_url":"https://github.com/kiali/kiali/pull/143.diff","patch_url":"https://github.com/kiali/kiali/pull/143.patch"},"body":"This PR introduces a non intrusive check to detect services without traffic and add them into the representation of the graph.\r\n\r\nThe strategy is to fetch the services (and versions) for a namespace and place them in the graph with no traffic.\r\n\r\nIn this version we didn't enter to \"infer\" potential sources/destinations from the configuration for several reasons:\r\n- These non-traffic nodes in the graph are potentially ephemeral, as long as they have traffic, they are gone.\r\n- Infer sources and destinations could not be possible from Istio config in a high number of cases, and this could add complexity.\r\n- There are some default scenarios that might cover potential situations well enough.\r\n\r\nSo, let's describe some scenarios:\r\n\r\na) Namespace with no traffic, no info about sources or destinations (i.e. using the istio-tutorial demo)\r\n\r\n![image](https://user-images.githubusercontent.com/1662329/38362887-bd67eef6-38d2-11e8-9286-6621a4a51284.png)\r\n\r\nb) Namespace with partial traffic  (i.e. using the bookinfo namespace, generate traffic on bookinfo app, install the istio-tutorial demo, but leave these services without traffic)\r\n\r\n![image](https://user-images.githubusercontent.com/1662329/38362972-0d3cb290-38d3-11e8-8202-494b55a97f0f.png)\r\n\r\nOn this example, once traffic flows, the graph is updated with proper layout\r\n\r\n![image](https://user-images.githubusercontent.com/1662329/38363000-2e6c08a8-38d3-11e8-963b-35b4cf8327b5.png)\r\n\r\nc) Namespace with traffic, and it appears a new version without traffic\r\n\r\n![image](https://user-images.githubusercontent.com/1662329/38363033-57466106-38d3-11e8-9c6a-89f34d5b9b56.png)\r\n\r\nI think we would cover most of cases of potential situations.\r\n\r\nNote, this PR doesn't intend to refactor existing logic, just add an additional check on the existing design."},"comment":{"url":"https://api.github.com/repos/kiali/kiali/issues/comments/379765869","html_url":"https://github.com/kiali/kiali/pull/143#issuecomment-379765869","issue_url":"https://api.github.com/repos/kiali/kiali/issues/143","id":379765869,"user":{"login":"lucasponce","id":1662329,"avatar_url":"https://avatars0.githubusercontent.com/u/1662329?v=4","gravatar_id":"","url":"https://api.github.com/users/lucasponce","html_url":"https://github.com/lucasponce","followers_url":"https://api.github.com/users/lucasponce/followers","following_url":"https://api.github.com/users/lucasponce/following{/other_user}","gists_url":"https://api.github.com/users/lucasponce/gists{/gist_id}","starred_url":"https://api.github.com/users/lucasponce/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/lucasponce/subscriptions","organizations_url":"https://api.github.com/users/lucasponce/orgs","repos_url":"https://api.github.com/users/lucasponce/repos","events_url":"https://api.github.com/users/lucasponce/events{/privacy}","received_events_url":"https://api.github.com/users/lucasponce/received_events","type":"User","site_admin":false},"created_at":"2018-04-09T14:11:31Z","updated_at":"2018-04-09T14:11:31Z","author_association":"CONTRIBUTOR","body":">  Actually one could in case of a completely new service (that is not part of a group) also just float its node without any edge.\r\n\r\nSo, then your proposal is to leave nodes without edges when it can't find a group ?\r\n\r\n"}}
{"actor":{"display_login":"lucasponce"}}