Description
Expected behavior
Using a proxy in applilcationinsights.json should not require any local DNS resolution.
Actual behavior
If the agent is unable to resolve certain domains it fails to start. These domains include (maybe there are more)
- usgovarizona-0.in.applicationinsights.azure.us
- live.applicationinsights.us
- dc.services.visualstudio.com
- westus-0.in.applicationinsights.azure.com
If those domains can be resolved locally (for example with a hosts file), the agent starts up fine. This behavior was observed with AzureGovernment.
To Reproduce
- Deploy java agent into a java web application
- configure applicationinsights.json to use a proxy
- start the web application
System information
Please provide the following information:
- SDK Version: 3.2.4
- OS type and version: Linux, RH 7.9
- Application Server type and version (if applicable): Tomcat
- Using spring-boot? No
- Additional relevant libraries (with version, if applicable):
applicationinsights.json (in part)
{
"connectionString": "InstrumentationKey=XXXX;EndpointSuffix=applicationinsights.us;IngestionEndpoint=https://usgovarizona-0.in.applicationinsights.azure.us/",
"proxy": {
"host": "your.corporate.proxy.com",
"port": 31060
},
"role": {
"name": "abc"
},
}
Logs
2022-02-01 16:20:29.386-08:00 WARN c.m.a.a.i.i.AppIdSupplier$GetAppIdTask - Unable to retrieve appId: exception sending request to https://usgovarizona-0.in.applicationinsights.azure.us/api/profiles/XXXX/appId (future warnings will be aggregated and logged once every 5 minutes)
reactor.core.Exceptions$ReactiveException: java.net.UnknownHostException: usgovarizona-0.in.applicationinsights.azure.us: Name or service not known
at reactor.core.Exceptions.propagate(Exceptions.java:392)
at reactor.core.publisher.BlockingSingleSubscriber.blockingGet(BlockingSingleSubscriber.java:97)
at reactor.core.publisher.Mono.block(Mono.java:1706)
at com.microsoft.applicationinsights.agent.internal.init.AppIdSupplier$GetAppIdTask.run(AppIdSupplier.java:126)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:180)
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:293)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
at java.lang.Thread.run(Thread.java:748)
Suppressed: java.lang.Exception: #block terminated with an error
at reactor.core.publisher.BlockingSingleSubscriber.blockingGet(BlockingSingleSubscriber.java:99)
... 9 common frames omitted
Caused by: java.net.UnknownHostException: usgovarizona-0.in.applicationinsights.azure.us: Name or service not known
at java.net.Inet4AddressImpl.lookupAllHostAddr(Native Method)
at java.net.InetAddress$2.lookupAllHostAddr(InetAddress.java:929)
at java.net.InetAddress.getAddressesFromNameService(InetAddress.java:1324)
at java.net.InetAddress.getAllByName0(InetAddress.java:1277)
at java.net.InetAddress.getAllByName(InetAddress.java:1193)
at java.net.InetAddress.getAllByName(InetAddress.java:1127)
at io.netty.util.internal.SocketUtils$9.run(SocketUtils.java:169)
at io.netty.util.internal.SocketUtils$9.run(SocketUtils.java:166)
at java.security.AccessController.doPrivileged(Native Method)
at io.netty.util.internal.SocketUtils.allAddressesByName(SocketUtils.java:166)
at io.netty.resolver.DefaultNameResolver.doResolveAll(DefaultNameResolver.java:50)
at io.netty.resolver.SimpleNameResolver.resolveAll(SimpleNameResolver.java:79)
at io.netty.resolver.SimpleNameResolver.resolveAll(SimpleNameResolver.java:71)
at io.netty.resolver.InetSocketAddressResolver.doResolveAll(InetSocketAddressResolver.java:73)
at io.netty.resolver.InetSocketAddressResolver.doResolveAll(InetSocketAddressResolver.java:31)
at io.netty.resolver.AbstractAddressResolver.resolveAll(AbstractAddressResolver.java:158)
at reactor.netty.transport.TransportConnector.doResolveAndConnect(TransportConnector.java:283)
at reactor.netty.transport.TransportConnector.lambda$connect$6(TransportConnector.java:110)
at reactor.core.publisher.MonoFlatMap$FlatMapMain.onNext(MonoFlatMap.java:125)
at reactor.netty.transport.TransportConnector$MonoChannelPromise._subscribe(TransportConnector.java:579)
at reactor.netty.transport.TransportConnector$MonoChannelPromise.lambda$subscribe$0(TransportConnector.java:499)
at io.netty.util.concurrent.AbstractEventExecutor.safeExecute(AbstractEventExecutor.java:164)
at io.netty.util.concurrent.SingleThreadEventExecutor.runAllTasks(SingleThreadEventExecutor.java:469)
at io.netty.channel.epoll.EpollEventLoop.run(EpollEventLoop.java:384)
at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:986)
at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74)
at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30)
... 1 common frames omitted
2022-02-01 16:20:31.225-08:00 WARN c.m.a.a.i.q.QuickPulsePingSender - Pinging live metrics endpoint: java.net.UnknownHostException: live.applicationinsights.us (future warnings will be aggregated and logged once every 5 minutes)
reactor.core.Exceptions$ReactiveException: java.net.UnknownHostException: live.applicationinsights.us
at reactor.core.Exceptions.propagate(Exceptions.java:392)
at reactor.core.publisher.BlockingSingleSubscriber.blockingGet(BlockingSingleSubscriber.java:97)
at reactor.core.publisher.Mono.block(Mono.java:1706)
at com.microsoft.applicationinsights.agent.internal.quickpulse.QuickPulsePingSender.ping(QuickPulsePingSender.java:116)
at com.microsoft.applicationinsights.agent.internal.quickpulse.QuickPulseCoordinator.ping(QuickPulseCoordinator.java:107)
at com.microsoft.applicationinsights.agent.internal.quickpulse.QuickPulseCoordinator.run(QuickPulseCoordinator.java:63)
at java.lang.Thread.run(Thread.java:748)
Suppressed: java.lang.Exception: #block terminated with an error
at reactor.core.publisher.BlockingSingleSubscriber.blockingGet(BlockingSingleSubscriber.java:99)
... 5 common frames omitted
Caused by: java.net.UnknownHostException: live.applicationinsights.us
at java.net.InetAddress.getAllByName0(InetAddress.java:1281)
at java.net.InetAddress.getAllByName(InetAddress.java:1193)
at java.net.InetAddress.getAllByName(InetAddress.java:1127)
at io.netty.util.internal.SocketUtils$9.run(SocketUtils.java:169)
at io.netty.util.internal.SocketUtils$9.run(SocketUtils.java:166)
at java.security.AccessController.doPrivileged(Native Method)
at io.netty.util.internal.SocketUtils.allAddressesByName(SocketUtils.java:166)
at io.netty.resolver.DefaultNameResolver.doResolveAll(DefaultNameResolver.java:50)
at io.netty.resolver.SimpleNameResolver.resolveAll(SimpleNameResolver.java:79)
at io.netty.resolver.SimpleNameResolver.resolveAll(SimpleNameResolver.java:71)
at io.netty.resolver.InetSocketAddressResolver.doResolveAll(InetSocketAddressResolver.java:73)
at io.netty.resolver.InetSocketAddressResolver.doResolveAll(InetSocketAddressResolver.java:31)
at io.netty.resolver.AbstractAddressResolver.resolveAll(AbstractAddressResolver.java:158)
at reactor.netty.transport.TransportConnector.doResolveAndConnect(TransportConnector.java:283)
at reactor.netty.transport.TransportConnector.lambda$connect$6(TransportConnector.java:110)
at reactor.core.publisher.MonoFlatMap$FlatMapMain.onNext(MonoFlatMap.java:125)
at reactor.netty.transport.TransportConnector$MonoChannelPromise._subscribe(TransportConnector.java:579)
at reactor.netty.transport.TransportConnector$MonoChannelPromise.lambda$subscribe$0(TransportConnector.java:499)
at io.netty.util.concurrent.AbstractEventExecutor.safeExecute(AbstractEventExecutor.java:164)
at io.netty.util.concurrent.SingleThreadEventExecutor.runAllTasks(SingleThreadEventExecutor.java:469)
at io.netty.channel.epoll.EpollEventLoop.run(EpollEventLoop.java:384)
at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:986)
at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74)
at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30)