{"action":"created","issue":{"url":"https://api.github.com/repos/jaegertracing/jaeger-client-cpp/issues/129","repository_url":"https://api.github.com/repos/jaegertracing/jaeger-client-cpp","labels_url":"https://api.github.com/repos/jaegertracing/jaeger-client-cpp/issues/129/labels{/name}","comments_url":"https://api.github.com/repos/jaegertracing/jaeger-client-cpp/issues/129/comments","events_url":"https://api.github.com/repos/jaegertracing/jaeger-client-cpp/issues/129/events","html_url":"https://github.com/jaegertracing/jaeger-client-cpp/issues/129","id":359280269,"node_id":"MDU6SXNzdWUzNTkyODAyNjk=","number":129,"title":"The C++ Jaeger client always populates the \"ip\" tag with 127.0.0.1","user":{"login":"tudor","id":125148,"node_id":"MDQ6VXNlcjEyNTE0OA==","avatar_url":"https://avatars0.githubusercontent.com/u/125148?v=4","gravatar_id":"","url":"https://api.github.com/users/tudor","html_url":"https://github.com/tudor","followers_url":"https://api.github.com/users/tudor/followers","following_url":"https://api.github.com/users/tudor/following{/other_user}","gists_url":"https://api.github.com/users/tudor/gists{/gist_id}","starred_url":"https://api.github.com/users/tudor/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/tudor/subscriptions","organizations_url":"https://api.github.com/users/tudor/orgs","repos_url":"https://api.github.com/users/tudor/repos","events_url":"https://api.github.com/users/tudor/events{/privacy}","received_events_url":"https://api.github.com/users/tudor/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":2,"created_at":"2018-09-12T01:21:23Z","updated_at":"2018-09-13T22:56:47Z","closed_at":null,"author_association":"NONE","body":"## Requirement - what kind of business use case are you trying to solve?\r\n\r\nThe C++ Jaeger client always populates the \"ip\" tag with 127.0.0.1 in my environment (Docker containers running on a local machine), which makes the tag useless.\r\n\r\n## Problem - what in Jaeger blocks you from solving the requirement?\r\n\r\nIncorrect implementation in https://github.com/jaegertracing/jaeger-client-cpp/blob/7e9a135b362c47f7e4d42e0693b05b91a70e6888/src/jaegertracing/net/IPAddress.cpp#L45: Looking at the implementation, this will return the address of the first encountered `AF_INET` interface, which could be the loopback interface.\r\n\r\n## Proposal - what do you suggest to solve the problem or improve the existing situation?\r\n\r\nI know that getting a node's IP address is an ambiguous question with no right answer -- which interface do you use? Many nodes have more than one IP address, especially in the network-virtualized environments of Kube clusters, but the loopback interface is almost definitely the *wrong* answer.\r\n\r\nA better solution would allow overriding the IP address via environment variables and/or the tracer config, as per #105.\r\n"},"comment":{"url":"https://api.github.com/repos/jaegertracing/jaeger-client-cpp/issues/comments/421178169","html_url":"https://github.com/jaegertracing/jaeger-client-cpp/issues/129#issuecomment-421178169","issue_url":"https://api.github.com/repos/jaegertracing/jaeger-client-cpp/issues/129","id":421178169,"node_id":"MDEyOklzc3VlQ29tbWVudDQyMTE3ODE2OQ==","user":{"login":"tudor","id":125148,"node_id":"MDQ6VXNlcjEyNTE0OA==","avatar_url":"https://avatars0.githubusercontent.com/u/125148?v=4","gravatar_id":"","url":"https://api.github.com/users/tudor","html_url":"https://github.com/tudor","followers_url":"https://api.github.com/users/tudor/followers","following_url":"https://api.github.com/users/tudor/following{/other_user}","gists_url":"https://api.github.com/users/tudor/gists{/gist_id}","starred_url":"https://api.github.com/users/tudor/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/tudor/subscriptions","organizations_url":"https://api.github.com/users/tudor/orgs","repos_url":"https://api.github.com/users/tudor/repos","events_url":"https://api.github.com/users/tudor/events{/privacy}","received_events_url":"https://api.github.com/users/tudor/received_events","type":"User","site_admin":false},"created_at":"2018-09-13T22:56:47Z","updated_at":"2018-09-13T22:56:47Z","author_association":"NONE","body":"@isaachier: This also has the side effect of disabling clock skew adjustment in the collector, as the clock skew adjustment algorithm assumes that spans with the same value for the \"ip\" tag come from the same host, and thus do not need adjustment. https://github.com/jaegertracing/jaeger/blob/50429cb55aee9280e39621a0b5aae3c2afe5d190/model/adjuster/clockskew.go#L77"}}
{"actor":{"display_login":"tudor"}}