GithubHelp home page GithubHelp logo

microsoft / applicationinsights-java Goto Github PK

View Code? Open in Web Editor NEW
283.0 116.0 194.0 172.56 MB

Application Insights for Java

Home Page: http://aka.ms/application-insights

License: Other

Java 99.14% C++ 0.79% C 0.05% Kotlin 0.02% HTML 0.01%
application-insights java java-sdk java-agent sdk application-insights-sdk monitoring distributed-tracing observability sql

applicationinsights-java's Introduction

applicationinsights-java's People

Contributors

amnonshmsft avatar asaf-efraim avatar c-w avatar debugthings avatar dependabot[bot] avatar dhaval24 avatar dmitry-matveev avatar github-actions[bot] avatar grlima avatar gupele avatar heyams avatar incarnation-p-lee avatar jdneo avatar jeanbisutti avatar johnoliver avatar kryalama avatar leantk avatar littleaj avatar mihailsm avatar normalian avatar oriyosefimsft avatar rnnr avatar sergeykanzhelev avatar siyuniu-ms avatar terryxxx avatar timja avatar trask avatar xiao-lix avatar xiaolianghuang avatar yonisha avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

applicationinsights-java's Issues

SDKShutdownActivity is calling multiple times for same Channel

I've noticed problem leading to memory leaks and executing of shutdown hook many times, instead of single time!
First of all take a look at constructor of com.microsoft.applicationinsights.TelemetryClient:

    public TelemetryClient(TelemetryConfiguration configuration) {
        if (configuration == null) {
            configuration = TelemetryConfiguration.getActive();
        }

        synchronized (TELEMETRY_STOP_HOOK_LOCK) {
            SDKShutdownActivity.INSTANCE.register(new TelemetryClientChannelFetcher());
        }

        this.configuration = configuration;
    }

We are registering platform shutdown hook SDKShutdownActivity.INSTANCE.register(new TelemetryClientChannelFetcher()); and passing inner class TelemetryClientChannelFetcher:

public class TelemetryClient {
    private final class TelemetryClientChannelFetcher implements ChannelFetcher {
        public TelemetryChannel fetch() {
            return getChannel();
        }
    }

As this is sinner class, it holds hidden reference to TelemetryClient, otherwise it won't be able to call TelemetryClient#getChannel(). So all created TelemetryClient's would be hold in memory, no WeakReferences are used.
Then let's take a look at com.microsoft.applicationinsights.internal.shutdown.SDKShutdownActivity:

        private void stopChannels() {
            for (ChannelFetcher fetcher : fetchers) {
                try {
                    TelemetryChannel channelToStop = fetcher.fetch();
                    if (channelToStop != null) {
                        channelToStop.stop(1L, TimeUnit.SECONDS);
                    }
                } catch (Throwable t) {
                    InternalLogger.INSTANCE.error("Failed to stop channel: '%s'", t.getMessage());
                }
            }
        }

We are calling stop on every channel, but most TelemetryClients would have SAME channel! As most clients are using configuration = TelemetryConfiguration.getActive(); which is holding channel:

class TelemetryClient {
    /**
     * Gets the channel used by the client.
     */
    TelemetryChannel getChannel() {
        if (channel == null) {
            this.channel = configuration.getChannel();
        }

        return this.channel;
    }

So here are two problems:

  1. TelemetryChannel#stop is called multiple times
  2. TelemetryClients remains live in memory, as there are global references to them, and TC can hold quite big Context inside.

Even if context data isn't big, it still consumes memory, espessialy if create context man times, as seems appealing due to fact it holds userId, so I've tried to use instance per request, now seems not as good idea.

I would suggest:

  1. don't store references TelemetryClients in global, just copy channel from it.
  2. Subscribe channel for shutdown in TelemetryConfiguration creation factory.

P.S. maybe I don't understand something, than could somebody explain me why it's implemented this way? Am I misusing it, and should create single TelemetryCLient per application?

Thanks,
Bogdan.

Please provide examples on how to unit test classes which use ADAL4J

This is linked to issue #361 which has been (unjustly in my view, or at least prematurely) closed.

Please provide more information as to to whom we need to turn to request better support for unit testing classes which use ADAL4J. Or at least specify why #361 was closed without comments as to why this was not an issue (and then providing some way of how to unit test classes using ADAL4J).

javadoc task fails for Java 8 because of integrated doclint resulting in Unknown tag

There are sections in the documentation which use XML in the documentation that javadoc parses to generate the documentation. These XML tags break the docs generation.

To supress this we need to add -Xdoclint:none
Reference: http://blog.joda.org/2014/02/turning-off-doclint-in-jdk-8-javadoc.html

:samples:javadocC:\Users\susingan\Documents\Microsoft\ApplicationInsights-Java\samples\src\plugins\java\com\microsoft\applicationinsights\sample\plugins\GitBuildInfoContextInitializer.java:34: error: unknown tag: ContextInitializers
 * <ContextInitializers>
   ^
C:\Users\susingan\Documents\Microsoft\ApplicationInsights-Java\samples\src\plugins\java\com\microsoft\applicationinsights\sample\plugins\GitBuildInfoContextInitializer.java:35: error: unknown tag: Add
 *   <Add type="com.microsoft.applicationinsights.sample.plugins.GitBuildInfoContextInitializer" />
     ^
C:\Users\susingan\Documents\Microsoft\ApplicationInsights-Java\samples\src\plugins\java\com\microsoft\applicationinsights\sample\plugins\GitBuildInfoContextInitializer.java:36: error: unknown tag: ContextInitializers
 * </ContextInitializers>
   ^
C:\Users\susingan\Documents\Microsoft\ApplicationInsights-Java\samples\src\main\java\com\microsoft\applicationinsights\sample\SampleFilter.java:40: error: unknown tag: TelemetryProcessors
 <TelemetryProcessors>
 ^
C:\Users\susingan\Documents\Microsoft\ApplicationInsights-Java\samples\src\main\java\com\microsoft\applicationinsights\sample\SampleFilter.java:42: error: unknown tag: CustomProcessors
     <CustomProcessors>
     ^
C:\Users\susingan\Documents\Microsoft\ApplicationInsights-Java\samples\src\main\java\com\microsoft\applicationinsights\sample\SampleFilter.java:43: error: unknown tag: Processor
        <Processor type="com.microsoft.applicationinsights.sample.SampleFilter">
        ^
C:\Users\susingan\Documents\Microsoft\ApplicationInsights-Java\samples\src\main\java\com\microsoft\applicationinsights\sample\SampleFilter.java:44: error: unknown tag: Add
            <Add name="Pass" value="false"/>
            ^
C:\Users\susingan\Documents\Microsoft\ApplicationInsights-Java\samples\src\main\java\com\microsoft\applicationinsights\sample\SampleFilter.java:45: error: unknown tag: Processor
        </Processor>
        ^
C:\Users\susingan\Documents\Microsoft\ApplicationInsights-Java\samples\src\main\java\com\microsoft\applicationinsights\sample\SampleFilter.java:46: error: unknown tag: CustomProcessors
    </CustomProcessors>
    ^
C:\Users\susingan\Documents\Microsoft\ApplicationInsights-Java\samples\src\main\java\com\microsoft\applicationinsights\sample\SampleFilter.java:48: error: unknown tag: TelemetryProcessors
 </TelemetryProcessors>
 ^

10 errors
:samples:javadoc FAILED

FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':samples:javadoc'.
> Javadoc generation failed. Generated Javadoc options file (useful for troubleshooting): 'C:\Users\susingan\Documents\Microsoft\ApplicationInsights-Java\samples\build\tmp\javadoc\javadoc.options'

* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output.

BUILD FAILED

Total time: 3.312 secs

I tried making a change as mentioned but it doesn't seem to be fixing it, any ideas ?

tasks.withType(Javadoc) {
        executable = javaExecutables.javadoc
        options.addStringOption('Xdoclint:none', '-quiet')
    }

Configuration Files on the Classpath present in a Jar File will not load

I'm currently writing a plugin to enable AppInsights on my project (it's a Maven project). I created a plugin, also a Maven project, and bundled the ApplicationInsights.xml file inside, as a resource. This works fine in my IDE, since the file is not inside of a jar, but on the filesystem. However, once I package the project and use the resulting artifact as a dependency (a jar of the plugin gets placed on the classpath), AppInsights sees the configuration file but cannot load it from the jar.

I tracked down the source of the bug - if the ApplicationInsights.xml file is present in a jar on the classpath, the SDK still tries to load as a file - but it should be loaded as a resource or input stream, since its not a file on the filesystem per se.

I'm able to reproduce this as a failing unit test in the SDK, as I've pushed to my branch on the PR, where I'm hoping a fix can be discussed/implemented.

Other people seem to be experiencing the problem too - as I found this StackOverflow question when searching for answers:
http://stackoverflow.com/questions/31789083/issue-unmarshalling-object-from-file-inside-jar/31931056#31931056

Feature request: Integration with slf4j

SLF4J is the de facto logging facade for java applications. By using SLF4J users will be able to pipe INFO and ERROR logs from Application insights to custom destinations like a logstash agent or file system.

Enable filter in log4j ApplicationInsightsAppender

The configuration

<ApplicationInsightsAppender name="applicationInsightsAppender">
   <ThresholdFilter level="ERROR" onMatch="ACCEPT" onMismatch="DENY" />
</ApplicationInsightsAppender>

results in the error

appender ApplicationInsightsAppender has no parameter that matches element ThresholdFilter.


I think, as a fix the appender needs to add a builder

@PluginBuilderFactory
public static <B extends Builder<B>> B newBuilder() {
    return new Builder<B>().asBuilder();
}
́public static class Builder<B extends Builder<B>> extends AbstractAppender.Builder<B>
            implements org.apache.logging.log4j.core.util.Builder<ApplicationInsightsAppender> { ... }

Not possible to register WebApp name/key properly when using WebRequestTrackingFilter in Spring boot

Hi,

When using the WebRequestTrackingFilter with a Spring boot application on the root context path the filter cannot register the web app name/key properly:

AI: ERROR 30-01-2017 12:15, 22: WebApp name is not found, unable to register WebApp
AI: INFO 30-01-2017 12:15, 22: Successfully registered the filter 'ApplicationInsightsWebFilter

This seem to be due to dependencies to either having a (non-root) servlet context path set for the app or that the app is found under a class-loading path containing "WEB-INF", which is not the case for this Spring boot app.

Would be good if the initialisation config could read either the spring boot app name or to have some external configuration value to set for the web app name/key.

Thanks in advance

Method setStatus(int sc, String sm) in ApplicationInsightsHttpResponseWrapper must be override

In ApplicationInsightsHttpResponseWrapper status code is not properly mapped when method setStatus(int sc, String sm) is used.
Jersey library (org.glassfish.jersey.containers:jersey-container-servlet-core:2.22.1) is using deprecated method setStatus in class org.glassfish.jersey.servlet.internal.ResponseWriter

        final String reasonPhrase = responseContext.getStatusInfo().getReasonPhrase();
        if (reasonPhrase != null) {
            response.setStatus(responseContext.getStatus(), reasonPhrase);
        } else {
            response.setStatus(responseContext.getStatus());
        }

Please update code and override missing method:

    @Override
    public void setStatus(int sc, String sm) {
        super.setStatus(sc, sm);

        this.httpStatusCode = sc;
    }

Agent instrumentation errors with JDBC PreparedStatement

Here's the stacktrace:

org.jboss.weld.interceptor.proxy.InterceptorException: java.lang.VerifyError: StackMapTable format error: bad type array size in method com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement.setTime(ILjava/sql/Time;)V
    at org.jboss.weld.interceptor.proxy.InterceptorInvocationContext.proceed(InterceptorInvocationContext.java:150) ~[weld-servlet.jar:2013-07-17 09:29]
    at org.mybatis.cdi.LocalTransactionInterceptor.invoke(LocalTransactionInterceptor.java:58) ~[mybatis-cdi-1.0.0-beta1.jar:1.0.0-beta1]
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:1.7.0_79]
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) ~[na:1.7.0_79]
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:1.7.0_79]
    at java.lang.reflect.Method.invoke(Method.java:606) ~[na:1.7.0_79]
    at org.jboss.weld.interceptor.proxy.SimpleMethodInvocation.invoke(SimpleMethodInvocation.java:30) ~[weld-servlet.jar:2013-07-17 09:29]
    at org.jboss.weld.interceptor.chain.AbstractInterceptionChain.invokeNext(AbstractInterceptionChain.java:93) ~[weld-servlet.jar:2013-07-17 09:29]
    at org.jboss.weld.interceptor.chain.AbstractInterceptionChain.invokeNextInterceptor(AbstractInterceptionChain.java:78) ~[weld-servlet.jar:2013-07-17 09:2

Browser version shows incorrect version

We have this
"User-Agent": "Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; WOW64; Trident/5.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; .NET4.0C; .NET4.0E; InfoPath.3)",
in our request header. It is IE 9 however AI shows chrome 50 in Browser version.

Failed to register 'ApplicationInsightsWebFilter'

Hi folks, I fail to register 'ApplicationInsightsWebFilter' when running locally on my Tomcat 7 server with the following exception. How can it be fixed?

I: INFO 15-06-2016 09:30, 13: Registering WebApp with name 'azure-documentdb-java-sample'
AI: ERROR 15-06-2016 09:30, 13: Failed to register 'ApplicationInsightsWebFilter', exception: 'com/microsoft/applicationinsights/agent/internal/coresync/AgentNotificationsHandler'
AI: INFO 15-06-2016 09:30, 13: Configuration file 'ApplicationInsights.xml' was NOT found by default class loader
AI: INFO 15-06-2016 09:30, 13: Configuration file has been successfully found in: 'C:\Users\benlam\Documents\eclipse\workspaces.metadata.plugins\org.eclipse.wst.server.core\tmp0\wtpwebapps\azure-documentdb-java-sample\WEB-INF\lib\ApplicationInsights.xml'
Jun 15, 2016 9:30:34 AM org.apache.catalina.core.StandardContext filterStart
SEVERE: Exception starting filter ApplicationInsightsWebFilter
java.lang.NoClassDefFoundError: Could not initialize class org.apache.http.impl.conn.ManagedHttpClientConnectionFactory
at org.apache.http.impl.conn.PoolingHttpClientConnectionManager$InternalConnectionFactory.(PoolingHttpClientConnectionManager.java:494)
at org.apache.http.impl.conn.PoolingHttpClientConnectionManager.(PoolingHttpClientConnectionManager.java:149)
at org.apache.http.impl.conn.PoolingHttpClientConnectionManager.(PoolingHttpClientConnectionManager.java:138)
at org.apache.http.impl.conn.PoolingHttpClientConnectionManager.(PoolingHttpClientConnectionManager.java:114)
at org.apache.http.impl.conn.PoolingHttpClientConnectionManager.(PoolingHttpClientConnectionManager.java:105)
at com.microsoft.applicationinsights.internal.channel.common.ApacheSender43.(ApacheSender43.java:45)
at com.microsoft.applicationinsights.internal.channel.common.ApacheSenderFactory.create(ApacheSenderFactory.java:40)
at com.microsoft.applicationinsights.internal.channel.common.TransmissionNetworkOutput.(TransmissionNetworkOutput.java:86)
at com.microsoft.applicationinsights.internal.channel.common.TransmissionNetworkOutput.create(TransmissionNetworkOutput.java:77)
at com.microsoft.applicationinsights.channel.concrete.inprocess.InProcessTelemetryChannelFactory.create(InProcessTelemetryChannelFactory.java:46)
at com.microsoft.applicationinsights.channel.concrete.inprocess.InProcessTelemetryChannel.initialize(InProcessTelemetryChannel.java:258)
at com.microsoft.applicationinsights.channel.concrete.inprocess.InProcessTelemetryChannel.(InProcessTelemetryChannel.java:143)
at com.microsoft.applicationinsights.internal.config.TelemetryConfigurationFactory.setChannel(TelemetryConfigurationFactory.java:357)
at com.microsoft.applicationinsights.internal.config.TelemetryConfigurationFactory.initialize(TelemetryConfigurationFactory.java:100)
at com.microsoft.applicationinsights.TelemetryConfiguration.getActive(TelemetryConfiguration.java:72)
at com.microsoft.applicationinsights.web.internal.WebRequestTrackingFilter.init(WebRequestTrackingFilter.java:132)
at org.apache.catalina.core.ApplicationFilterConfig.initFilter(ApplicationFilterConfig.java:281)
at org.apache.catalina.core.ApplicationFilterConfig.getFilter(ApplicationFilterConfig.java:262)
at org.apache.catalina.core.ApplicationFilterConfig.(ApplicationFilterConfig.java:107)
at org.apache.catalina.core.StandardContext.filterStart(StandardContext.java:4775)
at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5452)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1559)
at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1549)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at java.lang.Thread.run(Thread.java:745)

Jun 15, 2016 9:30:34 AM org.apache.catalina.core.StandardContext startInternal
SEVERE: Error filterStart
Jun 15, 2016 9:30:34 AM org.apache.catalina.core.StandardContext startInternal
SEVERE: Context [/azure-documentdb-java-sample] startup failed due to previous errors

Loading ApplicationInsights.xml from current directory

In the ConfigurationFileLocator there is an option to load configuration from the executing jar directory

I've got an application packaged as a jar and ApplicationInsights.xml configuration in the same directory

squash ➜ ls -1
ApplicationInsights.xml
raf.jar

When I run my application it fails to read the configuration from ApplicationInsights.xml

java -jar raf.jar

AI: INFO 07-09-2015 12:08, 14: Successfully registered the filter 'ApplicationInsightsWebFilter'
AI: INFO 07-09-2015 12:08, 14: Configuration file 'ApplicationInsights.xml' was NOT found by default class loader
AI: ERROR 07-09-2015 12:08, 14: Failed to initialize configuration, exception: null

Is there a way to externalise the config? I can't package the config xml in the jar as a resource because it varies depending on the environment the app runs in.

class "javax.annotation.Nullable"'s signer information does not match signer information of other classes in the same package

There is javax.annotation package inlined in applicationinsight-core.jar (v 1.0.7). Unfortunately whole jar is signed so it force us to use classes from the same package. While, for example, Nullable class is included in both JDK and applicationinsights-core we are getting class "javax.annotation.Nullable"'s signer information does not match signer information of other classes in the same package. Are there any known solutions for dealing with such issue?

Possible solution could be to exclude javax.annotation package from the JAR and use one included in JDK.

QuickPulse Broken

According to the code here you're explicitly building the JSON body using a string builder but it appears you're not surrounding the data with the curly braces. This breaks the expected format expected by the QuickPulse service.

NOTE that all of the errors come from the com.microsoft.applicationinsights.core.dependencies.http.* class. Which tells me that my QuickPulse telemetry is being counted as a dependency which should not happen as it's filtered out in other SDKs such as the .NET SDK here

Error From Stream

Error converting value \"Instance\" to type 'Microsoft.ManagementServices.RealTimeDataProcessing.QuickPulseService.MonitoringDataPoint'. Path '', line 1, position 10.","Exception":""

Message Capture from Java Application

"Instance":"192.168.1.145","InstrumentationKey":{{REMOVED}},"InvariantVersion":2,"MachineName":"192.168.1.145","Version":"2.2.0-424","StreamId":{{REMVOED}},"Documents":null,"Metrics":null,"Timestamp": "\/Date(1485820304291)\\/\""

Capture from .NET Application

{
    "Documents": null,
    "Instance": "{{machinename}}.microsoft.com",
    "InstrumentationKey": null,
    "InvariantVersion": 2,
    "IsWebApp": false,
    "MachineName": "{{machinename}}",
    "Metrics": null,
    "StreamId": "{{REMOVED}}",
    "Timestamp": "\/Date(1485828129431)\/",
    "Version": "2.2.0-738"
}

Log File

http-outgoing-0 >> POST /QuickPulseService.svc/ping?ikey=ping?ikey=6337ac5a-cc11-4f76-b9af-64b73f8ad671 HTTP/1.1
http-outgoing-0 >> x-ms-qps-transmission-time: 636214171042910000
http-outgoing-0 >> Content-Length: 275
http-outgoing-0 >> Host: rt.services.visualstudio.com
http-outgoing-0 >> Connection: Keep-Alive
http-outgoing-0 >> User-Agent: Apache-HttpClient/4.3.5 (java 1.5)
http-outgoing-0 >> Accept-Encoding: gzip,deflate
http-outgoing-0 >> "POST /QuickPulseService.svc/ping?ikey=ping?ikey={{REMOVED}} HTTP/1.1[\r][\n]"
http-outgoing-0 >> "x-ms-qps-transmission-time: 636214171042910000[\r][\n]"
http-outgoing-0 >> "Content-Length: 275[\r][\n]"
http-outgoing-0 >> "Host: rt.services.visualstudio.com[\r][\n]"
http-outgoing-0 >> "Connection: Keep-Alive[\r][\n]"
http-outgoing-0 >> "User-Agent: Apache-HttpClient/4.3.5 (java 1.5)[\r][\n]"
http-outgoing-0 >> "Accept-Encoding: gzip,deflate[\r][\n]"
http-outgoing-0 >> "[\r][\n]"
http-outgoing-0 >> ""Instance":"192.168.1.145","InstrumentationKey":{{REMOVED}},"InvariantVersion":2,"MachineName":"192.168.1.145","Version":"2.2.0-424","StreamId":{{REMVOED}},"Documents":null,"Metrics":null,"Timestamp": "\/Date(1485820304291)\\/\"""


http-outgoing-0 << "HTTP/1.1 500 Internal Server Error[\r][\n]"
http-outgoing-0 << "Content-Length: 322[\r][\n]"
http-outgoing-0 << "Content-Type: application/json; charset=utf-8[\r][\n]"
http-outgoing-0 << "Server: Microsoft-IIS/8.5[\r][\n]"
http-outgoing-0 << "x-ms-qps-subscribed: false[\r][\n]"
http-outgoing-0 << "Access-Control-Allow-Origin: *[\r][\n]"
http-outgoing-0 << "x-ms-request-target-ikey: {{REMOVED}}[\r][\n]"
http-outgoing-0 << "X-Powered-By: ASP.NET[\r][\n]"
http-outgoing-0 << "Strict-Transport-Security: max-age=31536000; includeSubDomains[\r][\n]"
http-outgoing-0 << "Date: Mon, 30 Jan 2017 23:51:44 GMT[\r][\n]"
http-outgoing-0 << "[\r][\n]"
http-outgoing-0 << "{"RequestId":"00000000-0000-0000-0000-000000000000","ResponseDateTime":"2017-01-30T23:51:44.5856395Z","Code":"InvalidOperation","Message":"Error converting value \"Instance\" to type 'Microsoft.ManagementServices.RealTimeDataProcessing.QuickPulseService.MonitoringDataPoint'. Path '', line 1, position 10.","Exception":""}"

AgentNotificationsHandler is missing from the maven package?

An error is logged upon startup:

AI: ERROR 17-09-2015 13:17, 1: Failed to register 'ApplicationInsightsWebFilter', exception: 'com/microsoft/applicationinsights/agent/internal/coresync/AgentNotificationsHandler'

It turns out the problem is actually that the file for the interface
com.microsoft.applicationinsights.agent.internal.coresync.AgentNotificationsHandler
is missing from the maven jar.

Proxy settings should be namespaced

This pull request allows configuration of the proxy settings using global system properties:
#290

Unfortunately this means ALL Apache http clients will send traffic through a proxy. In a segregated network environment where internal network calls do not need to go through a proxy, this creates unnecessary latency on calls. As well, with segregated networks, normally only external network requests would be configured to go through. This would end up blocking all internal requests.

Proxy settings should be set using custom system properties, not the global ones "proxyHost", "proxyPort". Something like "applicationInsights.proxyHost", "applicationInsights.proxyPort", or
"com.microsoft.applicationInsights.proxyHost/proxyPort" should suffice.

Agent bytecode instrumentation wrong for Apache HttpClient

The HttpClassDataProvider.java file has the following constant defined:

private final static String HTTP_CLIENT_METHOD_42_SIGNATURE = "(Lorg/apache/http/HttpHost;Lorg/apache/http/HttpRequest;Lorg/apache/http/protocol/HttpContext;)Lorg/apache/http/HttpResponse;";

This isn't the actual method signature, and it's causing errors. The actual signature should be:
private final static String HTTP_CLIENT_METHOD_42_SIGNATURE = "(Lorg/apache/http/HttpHost;Lorg.apache.http.client.methods.HttpUriRequest;Lorg/apache/http/protocol/HttpContext;)Lorg/apache/http/HttpResponse;";

Without this fix, libraries that use HttpClient are blowing up. Here's an example using agent on a webapp using Amazon's S3 java library (which depends on HttpClient):

Caused by: java.lang.VerifyError: (class: org/apache/http/impl/client/AbstractHttpClient, method: execute signature: (Lorg/apache/http/HttpHost;Lorg/apache/http/HttpRequest;Lorg/apache/http/protocol/HttpContext;)Lorg/apache/http/HttpResponse;) Incompatible object argument for function call
at com.amazonaws.http.HttpClientFactory.createHttpClient(HttpClientFactory.java:106)
at com.amazonaws.http.AmazonHttpClient.<init>(AmazonHttpClient.java:193)
at com.amazonaws.AmazonWebServiceClient.<init>(AmazonWebServiceClient.java:119)
at com.amazonaws.AmazonWebServiceClient.<init>(AmazonWebServiceClient.java:103)
at com.amazonaws.services.s3.AmazonS3Client.<init>(AmazonS3Client.java:365)
at com.amazonaws.services.s3.AmazonS3Client.<init>(AmazonS3Client.java:347)

Individual gradle build tasks have random failures when downloading resources

Short description

Running an individual gradlew task e.g. gradlew jar individually for the first time fails.

Steps to reproduce

  1. Set up the project by running gradlew which downloads the the requirements and successfully builds the project.

    Welcome to Gradle 3.0.
    
    To run a build, run gradlew <task> ...
    
    To see a list of available tasks, run gradlew tasks
    
    To see a list of command-line options, run gradlew --help
    
    To see more detail about a task, run gradlew help --task <task>
    
    BUILD SUCCESSFUL
    
  2. Run gradlew jar and it fails, run gradlew jar --info and it successfuly builds and then running gradlew jar runs again. The detailed log is shown below.

$ java -version
java version "1.8.0_101"
Java(TM) SE Runtime Environment (build 1.8.0_101-b13)
Java HotSpot(TM) 64-Bit Server VM (build 25.101-b13, mixed mode)

Detailed description

I've successfully compiled and was able to build this project locally. Having a look at the gradle tasks I notice the jar creation in the Build tasks runnable by gradlew jar. Running this task returns a BUILD FAILURE

susingan@MININT-NHLS81D MINGW64 ~/Documents/Microsoft/ApplicationInsights-Java (master)
$ ./gradlew jar
:buildSrc:compileJava UP-TO-DATE
:buildSrc:compileGroovy UP-TO-DATE
:buildSrc:processResources UP-TO-DATE
:buildSrc:classes UP-TO-DATE
:buildSrc:jar UP-TO-DATE
:buildSrc:assemble UP-TO-DATE
:buildSrc:compileTestJava UP-TO-DATE
:buildSrc:compileTestGroovy UP-TO-DATE
:buildSrc:processTestResources UP-TO-DATE
:buildSrc:testClasses UP-TO-DATE
:buildSrc:test UP-TO-DATE
:buildSrc:check UP-TO-DATE
:buildSrc:build UP-TO-DATE
Environment variable 'JAVA_JRE_6' is not defined - falling back to use machine default Java SDK
Environment variable 'JAVA_JRE_6' is not defined - falling back to use machine default Java SDK
Native binaries build is only supported on Windows systems; native components will not be built.
Environment variable 'JAVA_JRE_6' is not defined - falling back to use machine default Java SDK
Environment variable 'JAVA_JRE_6' is not defined - falling back to use machine default Java SDK
Environment variable 'JAVA_JRE_6' is not defined - falling back to use machine default Java SDK
Environment variable 'JAVA_JRE_6' is not defined - falling back to use machine default Java SDK
Environment variable 'JAVA_JRE_6' is not defined - falling back to use machine default Java SDK
Environment variable 'JAVA_JRE_6' is not defined - falling back to use machine default Java SDK
Environment variable 'JAVA_JRE_6' is not defined - falling back to use machine default Java SDK
Environment variable 'JAVA_JRE_6' is not defined - falling back to use machine default Java SDK
:agent:compileJavaNote: C:\Users\susingan\Documents\Microsoft\ApplicationInsights-Java\agent\src\main\java\com\microsoft\applicationinsights\agent\internal\agent\AgentImplementation.java uses unchecked or unsafe operations.
Note: Recompile with -Xlint:unchecked for details.

:agent:processResources UP-TO-DATE
:agent:classes
:agent:shadowJar
:agent:jar SKIPPED
:core:compileJavaNote: C:\Users\susingan\Documents\Microsoft\ApplicationInsights-Java\core\src\main\java\com\microsoft\applicationinsights\internal\channel\common\ApacheSender42.java uses or overrides a deprecated API.
Note: Recompile with -Xlint:deprecation for details.
Note: Some input files use unchecked or unsafe operations.
Note: Recompile with -Xlint:unchecked for details.

:core:copyReleaseNotesToCommonResourcesDir
:core:generateVersionProperties
:core:processResources
:core:classes
:core:jar
:web:compileJava
Download https://repo1.maven.org/maven2/com/opensymphony/xwork/2.0.4/xwork-2.0.4.pom
Download https://repo1.maven.org/maven2/javax/enterprise/cdi-api/1.1/cdi-api-1.1.pom
Download https://repo1.maven.org/maven2/org/jboss/weld/weld-parent/21/weld-parent-21.pom
Download https://repo1.maven.org/maven2/commons-logging/commons-logging/1.0.4/commons-logging-1.0.4.pom
Download https://repo1.maven.org/maven2/opensymphony/ognl/2.6.11/ognl-2.6.11.pom
Download https://repo1.maven.org/maven2/javax/el/el-api/2.2/el-api-2.2.pom
Download https://repo1.maven.org/maven2/org/glassfish/web/el/2.2/el-2.2.pom
Download https://repo1.maven.org/maven2/org/jboss/spec/javax/interceptor/jboss-interceptors-api_1.1_spec/1.0.0.Beta1/jboss-interceptors-api_1.1_spec-1.0.0.Beta1.pom
Download https://repo1.maven.org/maven2/org/jboss/spec/jboss-specs-parent/1.0.0.Beta1/jboss-specs-parent-1.0.0.Beta1.pom
Download https://repo1.maven.org/maven2/org/jboss/jboss-parent/5-beta-5/jboss-parent-5-beta-5.pom
Download https://repo1.maven.org/maven2/javax/annotation/jsr250-api/1.0/jsr250-api-1.0.pom
Download https://repo1.maven.org/maven2/javax/inject/javax.inject/1/javax.inject-1.pom
Download https://repo1.maven.org/maven2/com/opensymphony/xwork/2.0.4/xwork-2.0.4.jar

FAILURE: Build failed with an exception.

* What went wrong:
Could not resolve all dependencies for configuration ':web:compileClasspath'.
> Could not download xwork.jar (com.opensymphony:xwork:2.0.4)
   > Could not get resource 'https://repo1.maven.org/maven2/com/opensymphony/xwork/2.0.4/xwork-2.0.4.jar'.
      > Failed to move file 'C:\Users\susingan\AppData\Local\Temp\gradle_download9078998473365350625bin' into filestore at 'C:\Users\susingan\.gradle\caches\modules-2\files-2.1\com.opensymphony\xwork\2.0.4\f0abdf1d8c249c971c1eea9e2509936ffda65fbc\xwork-2.0.4.jar'

* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output.

BUILD FAILED

Total time: 16.222 secs

As described running it with the --info options to get more information, it returns a BUILD SUCCESS

susingan@MININT-NHLS81D MINGW64 ~/Documents/Microsoft/ApplicationInsights-Java (master)
$ ./gradlew jar --info
Initialized native services in: C:\Users\susingan\.gradle\native
Connected to daemon DaemonInfo{pid=35396, address=[6a0108c9-f06b-4195-aac4-7e5a7055b21b port:7493, addresses:[/127.0.0.1, /0:0:0:0:0:0:0:1]], idle=true, lastBusy=1475548417899, context=DefaultDaemonContext[uid=5835efc6-00d1-4b45-b370-1a6b25f97b40,javaHome=C:\Program Files\Java\jdk1.8.0_101,daemonRegistryDir=C:\Users\susingan\.gradle\daemon,pid=35396,idleTimeout=10800000,daemonOpts=-XX:MaxPermSize=256m,-XX:+HeapDumpOnOutOfMemoryError,-Xmx1024m,-Dfile.encoding=windows-1252,-Duser.country=US,-Duser.language=en,-Duser.variant]}. Dispatching request Build{id=067abc90-d839-477a-a8d1-bde096fcf6d6.1, currentDir=C:\Users\susingan\Documents\Microsoft\ApplicationInsights-Java}.
Received result org.gradle.launcher.daemon.protocol.BuildStarted@6e15fe2 from daemon DaemonInfo{pid=35396, address=[6a0108c9-f06b-4195-aac4-7e5a7055b21b port:7493, addresses:[/127.0.0.1, /0:0:0:0:0:0:0:1]], idle=true, lastBusy=1475548417899, context=DefaultDaemonContext[uid=5835efc6-00d1-4b45-b370-1a6b25f97b40,javaHome=C:\Program Files\Java\jdk1.8.0_101,daemonRegistryDir=C:\Users\susingan\.gradle\daemon,pid=35396,idleTimeout=10800000,daemonOpts=-XX:MaxPermSize=256m,-XX:+HeapDumpOnOutOfMemoryError,-Xmx1024m,-Dfile.encoding=windows-1252,-Duser.country=US,-Duser.language=en,-Duser.variant]} (build should be starting).
The client will now receive all logging from the daemon (pid: 35396). The daemon log file: C:\Users\susingan\.gradle\daemon\3.0\daemon-35396.out.log
Starting 4th build in daemon [uptime: 11 mins 48.422 secs, performance: 100%, no major garbage collections]
Executing build with daemon context: DefaultDaemonContext[uid=5835efc6-00d1-4b45-b370-1a6b25f97b40,javaHome=C:\Program Files\Java\jdk1.8.0_101,daemonRegistryDir=C:\Users\susingan\.gradle\daemon,pid=35396,idleTimeout=10800000,daemonOpts=-XX:MaxPermSize=256m,-XX:+HeapDumpOnOutOfMemoryError,-Xmx1024m,-Dfile.encoding=windows-1252,-Duser.country=US,-Duser.language=en,-Duser.variant]
Starting Build
Evaluating root project 'buildSrc' using build file 'C:\Users\susingan\Documents\Microsoft\ApplicationInsights-Java\buildSrc\build.gradle'.
Selected primary task 'build' from project :
In-memory cache of C:\Users\susingan\Documents\Microsoft\ApplicationInsights-Java\buildSrc\.gradle\3.0\taskArtifacts\fileHashes.bin: Size{8}, CacheStats{hitCount=25, missCount=8, loadSuccessCount=0, loadExceptionCount=0, totalLoadTime=0, evictionCount=0}
In-memory cache of C:\Users\susingan\Documents\Microsoft\ApplicationInsights-Java\buildSrc\.gradle\3.0\taskArtifacts\treeSnapshots.bin: Size{0}, CacheStats{hitCount=0, missCount=0, loadSuccessCount=0, loadExceptionCount=0, totalLoadTime=0, evictionCount=0}
In-memory cache of C:\Users\susingan\Documents\Microsoft\ApplicationInsights-Java\buildSrc\.gradle\3.0\taskArtifacts\treeSnapshotUsage.bin: Size{0}, CacheStats{hitCount=0, missCount=0, loadSuccessCount=0, loadExceptionCount=0, totalLoadTime=0, evictionCount=0}
In-memory cache of C:\Users\susingan\Documents\Microsoft\ApplicationInsights-Java\buildSrc\.gradle\3.0\taskArtifacts\fileSnapshotsToTreeSnapshotsIndex.bin: Size{9}, CacheStats{hitCount=0, missCount=9, loadSuccessCount=0, loadExceptionCount=0, totalLoadTime=0, evictionCount=0}
In-memory cache of C:\Users\susingan\Documents\Microsoft\ApplicationInsights-Java\buildSrc\.gradle\3.0\taskArtifacts\fileSnapshots.bin: Size{9}, CacheStats{hitCount=0, missCount=0, loadSuccessCount=0, loadExceptionCount=0, totalLoadTime=0, evictionCount=0}
In-memory cache of C:\Users\susingan\Documents\Microsoft\ApplicationInsights-Java\buildSrc\.gradle\3.0\taskArtifacts\taskArtifacts.bin: Size{2}, CacheStats{hitCount=4, missCount=2, loadSuccessCount=0, loadExceptionCount=0, totalLoadTime=0, evictionCount=0}
:compileJava (Thread[Daemon worker Thread 2,5,main]) started.
:buildSrc:compileJava
file or directory 'C:\Users\susingan\Documents\Microsoft\ApplicationInsights-Java\buildSrc\src\main\java', not found
Skipping task ':compileJava' as it has no source files.
:buildSrc:compileJava UP-TO-DATE
:compileJava (Thread[Daemon worker Thread 2,5,main]) completed. Took 0.004 secs.
:compileGroovy (Thread[Daemon worker Thread 2,5,main]) started.
:buildSrc:compileGroovy
Skipping task ':compileGroovy' as it is up-to-date (took 0.017 secs).
:buildSrc:compileGroovy UP-TO-DATE
:compileGroovy (Thread[Daemon worker Thread 2,5,main]) completed. Took 0.02 secs.
:processResources (Thread[Daemon worker Thread 2,5,main]) started.
:buildSrc:processResources
file or directory 'C:\Users\susingan\Documents\Microsoft\ApplicationInsights-Java\buildSrc\src\main\resources', not found
Skipping task ':processResources' as it has no source files.
:buildSrc:processResources UP-TO-DATE
:processResources (Thread[Daemon worker Thread 2,5,main]) completed. Took 0.001 secs.
:classes (Thread[Daemon worker Thread 2,5,main]) started.
:buildSrc:classes
Skipping task ':classes' as it has no actions.
:buildSrc:classes UP-TO-DATE
:classes (Thread[Daemon worker Thread 2,5,main]) completed. Took 0.0 secs.
:jar (Thread[Daemon worker Thread 2,5,main]) started.
:buildSrc:jar
Skipping task ':jar' as it is up-to-date (took 0.003 secs).
:buildSrc:jar UP-TO-DATE
:jar (Thread[Daemon worker Thread 2,5,main]) completed. Took 0.005 secs.
:assemble (Thread[Daemon worker Thread 2,5,main]) started.
:buildSrc:assemble
Skipping task ':assemble' as it has no actions.
:buildSrc:assemble UP-TO-DATE
:assemble (Thread[Daemon worker Thread 2,5,main]) completed. Took 0.0 secs.
:compileTestJava (Thread[Daemon worker Thread 2,5,main]) started.
:buildSrc:compileTestJava
file or directory 'C:\Users\susingan\Documents\Microsoft\ApplicationInsights-Java\buildSrc\src\test\java', not found
Skipping task ':compileTestJava' as it has no source files.
:buildSrc:compileTestJava UP-TO-DATE
:compileTestJava (Thread[Daemon worker Thread 2,5,main]) completed. Took 0.001 secs.
:compileTestGroovy (Thread[Daemon worker Thread 2,5,main]) started.
:buildSrc:compileTestGroovy
file or directory 'C:\Users\susingan\Documents\Microsoft\ApplicationInsights-Java\buildSrc\src\test\groovy', not found
Skipping task ':compileTestGroovy' as it has no source files.
:buildSrc:compileTestGroovy UP-TO-DATE
:compileTestGroovy (Thread[Daemon worker Thread 2,5,main]) completed. Took 0.005 secs.
:processTestResources (Thread[Daemon worker Thread 2,5,main]) started.
:buildSrc:processTestResources
file or directory 'C:\Users\susingan\Documents\Microsoft\ApplicationInsights-Java\buildSrc\src\test\resources', not found
Skipping task ':processTestResources' as it has no source files.
:buildSrc:processTestResources UP-TO-DATE
:processTestResources (Thread[Daemon worker Thread 2,5,main]) completed. Took 0.002 secs.
:testClasses (Thread[Daemon worker Thread 2,5,main]) started.
:buildSrc:testClasses
Skipping task ':testClasses' as it has no actions.
:buildSrc:testClasses UP-TO-DATE
:testClasses (Thread[Daemon worker Thread 2,5,main]) completed. Took 0.004 secs.
:test (Thread[Daemon worker Thread 2,5,main]) started.
:buildSrc:test
file or directory 'C:\Users\susingan\Documents\Microsoft\ApplicationInsights-Java\buildSrc\build\classes\test', not found
Skipping task ':test' as it has no source files.
:buildSrc:test UP-TO-DATE
:test (Thread[Daemon worker Thread 2,5,main]) completed. Took 0.001 secs.
:check (Thread[Daemon worker Thread 2,5,main]) started.
:buildSrc:check
Skipping task ':check' as it has no actions.
:buildSrc:check UP-TO-DATE
:check (Thread[Daemon worker Thread 2,5,main]) completed. Took 0.0 secs.
:build (Thread[Daemon worker Thread 2,5,main]) started.
:buildSrc:build
Skipping task ':build' as it has no actions.
:buildSrc:build UP-TO-DATE
:build (Thread[Daemon worker Thread 2,5,main]) completed. Took 0.0 secs.
Stopped 0 compiler daemon(s).
Settings evaluated using settings file 'C:\Users\susingan\Documents\Microsoft\ApplicationInsights-Java\settings.gradle'.
Projects loaded. Root project using build file 'C:\Users\susingan\Documents\Microsoft\ApplicationInsights-Java\build.gradle'.
Included projects: [root project 'ApplicationInsights-Java', project ':agent', project ':core', project ':distributions', project ':logging', project ':samples', project ':test', project ':web', project ':logging:log4j1_2', project ':logging:log4j2', project ':logging:logback', project ':test:performance', project ':test:webapps', project ':test:webapps:bookstore-spring']
Evaluating root project 'ApplicationInsights-Java' using build file 'C:\Users\susingan\Documents\Microsoft\ApplicationInsights-Java\build.gradle'.
This is NOT a release version; version updated to 1.0.7-SNAPSHOT
Evaluating project ':agent' using build file 'C:\Users\susingan\Documents\Microsoft\ApplicationInsights-Java\agent\build.gradle'.
Environment variable 'JAVA_JRE_6' is not defined - falling back to use machine default Java SDK
JDKToUse not found. Using default JAVA_HOME
Evaluating project ':core' using build file 'C:\Users\susingan\Documents\Microsoft\ApplicationInsights-Java\core\build.gradle'.
Environment variable 'JAVA_JRE_6' is not defined - falling back to use machine default Java SDK
JDKToUse not found. Using default JAVA_HOME
Native binaries build is only supported on Windows systems; native components will not be built.
Evaluating project ':distributions' using build file 'C:\Users\susingan\Documents\Microsoft\ApplicationInsights-Java\distributions\build.gradle'.
Environment variable 'JAVA_JRE_6' is not defined - falling back to use machine default Java SDK
JDKToUse not found. Using default JAVA_HOME
Evaluating project ':logging' using build file 'C:\Users\susingan\Documents\Microsoft\ApplicationInsights-Java\logging\build.gradle'.
Evaluating project ':samples' using build file 'C:\Users\susingan\Documents\Microsoft\ApplicationInsights-Java\samples\build.gradle'.
Environment variable 'JAVA_JRE_6' is not defined - falling back to use machine default Java SDK
JDKToUse not found. Using default JAVA_HOME
Evaluating project ':test' using build file 'C:\Users\susingan\Documents\Microsoft\ApplicationInsights-Java\test\build.gradle'.
Evaluating project ':web' using build file 'C:\Users\susingan\Documents\Microsoft\ApplicationInsights-Java\web\build.gradle'.
Environment variable 'JAVA_JRE_6' is not defined - falling back to use machine default Java SDK
JDKToUse not found. Using default JAVA_HOME
Evaluating project ':logging:log4j1_2' using build file 'C:\Users\susingan\Documents\Microsoft\ApplicationInsights-Java\logging\log4j1_2\build.gradle'.
Environment variable 'JAVA_JRE_6' is not defined - falling back to use machine default Java SDK
JDKToUse not found. Using default JAVA_HOME
Evaluating project ':logging:log4j2' using build file 'C:\Users\susingan\Documents\Microsoft\ApplicationInsights-Java\logging\log4j2\build.gradle'.
Environment variable 'JAVA_JRE_6' is not defined - falling back to use machine default Java SDK
JDKToUse not found. Using default JAVA_HOME
Evaluating project ':logging:logback' using build file 'C:\Users\susingan\Documents\Microsoft\ApplicationInsights-Java\logging\logback\build.gradle'.
Environment variable 'JAVA_JRE_6' is not defined - falling back to use machine default Java SDK
JDKToUse not found. Using default JAVA_HOME
Evaluating project ':test:performance' using build file 'C:\Users\susingan\Documents\Microsoft\ApplicationInsights-Java\test\performance\build.gradle'.
Environment variable 'JAVA_JRE_6' is not defined - falling back to use machine default Java SDK
JDKToUse not found. Using default JAVA_HOME
Project property 'distributionType' was not defined - defaulting to zip
Evaluating project ':test:webapps' using build file 'C:\Users\susingan\Documents\Microsoft\ApplicationInsights-Java\test\webapps\build.gradle'.
Evaluating project ':test:webapps:bookstore-spring' using build file 'C:\Users\susingan\Documents\Microsoft\ApplicationInsights-Java\test\webapps\bookstore-spring\build.gradle'.
Environment variable 'JAVA_JRE_6' is not defined - falling back to use machine default Java SDK
JDKToUse not found. Using default JAVA_HOME
All projects evaluated.
Excluding provided project dependency for project :agent
Excluding provided project dependency for project :agent
Excluding provided external dependency for artifact com.opensymphony:xwork:2.0.4
Excluding provided external dependency for artifact org.springframework:spring-webmvc:3.1.0.RELEASE
Excluding provided external dependency for artifact javax.servlet:servlet-api:2.5
Excluding provided external dependency for artifact javax.enterprise:cdi-api:1.1
Selected primary task 'jar' from project :
Tasks to be executed: [task ':agent:compileJava', task ':agent:processResources', task ':agent:classes', task ':agent:shadowJar', task ':agent:jar', task ':core:compileJava', task ':core:copyReleaseNotesToCommonResourcesDir', task ':core:generateVersionProperties', task ':core:processResources', task ':core:classes', task ':core:jar', task ':web:compileJava', task ':web:copyReleaseNotesToCommonResourcesDir', task ':web:processResources', task ':web:classes', task ':web:jar', task ':logging:log4j1_2:prepareSources', task ':logging:log4j1_2:compileJava', task ':logging:log4j1_2:copyReleaseNotesToCommonResourcesDir', task ':logging:log4j1_2:processResources', task ':logging:log4j1_2:classes', task ':logging:log4j1_2:jar', task ':logging:log4j2:prepareSources', task ':logging:log4j2:compileJava', task ':logging:log4j2:copyReleaseNotesToCommonResourcesDir', task ':logging:log4j2:processResources', task ':logging:log4j2:classes', task ':logging:log4j2:jar', task ':logging:logback:prepareSources', task ':logging:logback:compileJava', task ':logging:logback:copyReleaseNotesToCommonResourcesDir', task ':logging:logback:processResources', task ':logging:logback:classes', task ':logging:logback:jar', task ':distributions:compileJava', task ':distributions:processResources', task ':distributions:classes', task ':distributions:jar', task ':samples:compileJava', task ':samples:generateSourceOriginProperties', task ':samples:processResources', task ':samples:classes', task ':samples:jar', task ':test:performance:compileJava', task ':test:performance:processResources', task ':test:performance:classes', task ':test:performance:jar', task ':test:webapps:bookstore-spring:compileJava', task ':test:webapps:bookstore-spring:processResources', task ':test:webapps:bookstore-spring:classes', task ':test:webapps:bookstore-spring:jar']
In-memory cache of C:\Users\susingan\Documents\Microsoft\ApplicationInsights-Java\.gradle\3.0\taskArtifacts\fileHashes.bin: Size{656}, CacheStats{hitCount=368, missCount=656, loadSuccessCount=0, loadExceptionCount=0, totalLoadTime=0, evictionCount=0}
In-memory cache of C:\Users\susingan\Documents\Microsoft\ApplicationInsights-Java\.gradle\3.0\taskArtifacts\treeSnapshots.bin: Size{0}, CacheStats{hitCount=0, missCount=0, loadSuccessCount=0, loadExceptionCount=0, totalLoadTime=0, evictionCount=0}
In-memory cache of C:\Users\susingan\Documents\Microsoft\ApplicationInsights-Java\.gradle\3.0\taskArtifacts\treeSnapshotUsage.bin: Size{0}, CacheStats{hitCount=0, missCount=0, loadSuccessCount=0, loadExceptionCount=0, totalLoadTime=0, evictionCount=0}
In-memory cache of C:\Users\susingan\Documents\Microsoft\ApplicationInsights-Java\.gradle\3.0\taskArtifacts\fileSnapshotsToTreeSnapshotsIndex.bin: Size{27}, CacheStats{hitCount=0, missCount=27, loadSuccessCount=0, loadExceptionCount=0, totalLoadTime=0, evictionCount=0}
In-memory cache of C:\Users\susingan\Documents\Microsoft\ApplicationInsights-Java\.gradle\3.0\taskArtifacts\fileSnapshots.bin: Size{27}, CacheStats{hitCount=0, missCount=0, loadSuccessCount=0, loadExceptionCount=0, totalLoadTime=0, evictionCount=0}
In-memory cache of C:\Users\susingan\Documents\Microsoft\ApplicationInsights-Java\.gradle\3.0\taskArtifacts\taskArtifacts.bin: Size{9}, CacheStats{hitCount=0, missCount=9, loadSuccessCount=0, loadExceptionCount=0, totalLoadTime=0, evictionCount=0}
:agent:compileJava (Thread[Daemon worker Thread 2,5,main]) started.
:agent:compileJava
Skipping task ':agent:compileJava' as it is up-to-date (took 0.047 secs).
:agent:compileJava UP-TO-DATE
:agent:compileJava (Thread[Daemon worker Thread 2,5,main]) completed. Took 0.051 secs.
:agent:processResources (Thread[Daemon worker Thread 2,5,main]) started.
:agent:processResources
file or directory 'C:\Users\susingan\Documents\Microsoft\ApplicationInsights-Java\agent\src\main\resources', not found
Skipping task ':agent:processResources' as it has no source files.
:agent:processResources UP-TO-DATE
:agent:processResources (Thread[Daemon worker Thread 2,5,main]) completed. Took 0.002 secs.
:agent:classes (Thread[Daemon worker Thread 2,5,main]) started.
:agent:classes
Skipping task ':agent:classes' as it has no actions.
:agent:classes UP-TO-DATE
:agent:classes (Thread[Daemon worker Thread 2,5,main]) completed. Took 0.001 secs.
:agent:shadowJar (Thread[Daemon worker Thread 2,5,main]) started.
:agent:shadowJar
Skipping task ':agent:shadowJar' as it is up-to-date (took 0.026 secs).
:agent:shadowJar UP-TO-DATE
:agent:shadowJar (Thread[Daemon worker Thread 2,5,main]) completed. Took 0.032 secs.
:agent:jar (Thread[Daemon worker Thread 2,5,main]) started.
:agent:jar
Skipping task ':agent:jar' as task onlyIf is false.
:agent:jar SKIPPED
:agent:jar (Thread[Daemon worker Thread 2,5,main]) completed. Took 0.001 secs.
:core:compileJava (Thread[Daemon worker Thread 2,5,main]) started.
:core:compileJava
Skipping task ':core:compileJava' as it is up-to-date (took 0.081 secs).
:core:compileJava UP-TO-DATE
:core:compileJava (Thread[Daemon worker Thread 2,5,main]) completed. Took 0.085 secs.
:core:copyReleaseNotesToCommonResourcesDir (Thread[Daemon worker Thread 2,5,main]) started.
:core:copyReleaseNotesToCommonResourcesDir
Skipping task ':core:copyReleaseNotesToCommonResourcesDir' as it is up-to-date (took 0.008 secs).
:core:copyReleaseNotesToCommonResourcesDir UP-TO-DATE
:core:copyReleaseNotesToCommonResourcesDir (Thread[Daemon worker Thread 2,5,main]) completed. Took 0.014 secs.
:core:generateVersionProperties (Thread[Daemon worker Thread 2,5,main]) started.
:core:generateVersionProperties
Skipping task ':core:generateVersionProperties' as it is up-to-date (took 0.014 secs).
:core:generateVersionProperties UP-TO-DATE
:core:generateVersionProperties (Thread[Daemon worker Thread 2,5,main]) completed. Took 0.016 secs.
:core:processResources (Thread[Daemon worker Thread 2,5,main]) started.
:core:processResources
Skipping task ':core:processResources' as it is up-to-date (took 0.003 secs).
:core:processResources UP-TO-DATE
:core:processResources (Thread[Daemon worker Thread 2,5,main]) completed. Took 0.005 secs.
:core:classes (Thread[Daemon worker Thread 2,5,main]) started.
:core:classes
Skipping task ':core:classes' as it has no actions.
:core:classes UP-TO-DATE
:core:classes (Thread[Daemon worker Thread 2,5,main]) completed. Took 0.0 secs.
:core:jar (Thread[Daemon worker Thread 2,5,main]) started.
:core:jar
Skipping task ':core:jar' as it is up-to-date (took 0.045 secs).
:core:jar UP-TO-DATE
:core:jar (Thread[Daemon worker Thread 2,5,main]) completed. Took 0.05 secs.
:web:compileJava (Thread[Daemon worker Thread 2,5,main]) started.
:web:compileJava
Download https://repo1.maven.org/maven2/com/opensymphony/xwork/2.0.4/xwork-2.0.4.jar
Download https://repo1.maven.org/maven2/javax/enterprise/cdi-api/1.1/cdi-api-1.1.jar
Download https://repo1.maven.org/maven2/opensymphony/ognl/2.6.11/ognl-2.6.11.jar
Download https://repo1.maven.org/maven2/javax/el/el-api/2.2/el-api-2.2.jar
Download https://repo1.maven.org/maven2/org/jboss/spec/javax/interceptor/jboss-interceptors-api_1.1_spec/1.0.0.Beta1/jboss-interceptors-api_1.1_spec-1.0.0.Beta1.jar
Download https://repo1.maven.org/maven2/javax/annotation/jsr250-api/1.0/jsr250-api-1.0.jar
Download https://repo1.maven.org/maven2/javax/inject/javax.inject/1/javax.inject-1.jar
Executing task ':web:compileJava' (up-to-date check took 4.022 secs) due to:
  No history is available.
All input files are considered out-of-date for incremental task ':web:compileJava'.
Compiling with JDK Java compiler API.
:web:compileJava (Thread[Daemon worker Thread 2,5,main]) completed. Took 4.543 secs.
:web:copyReleaseNotesToCommonResourcesDir (Thread[Daemon worker Thread 2,5,main]) started.
:web:copyReleaseNotesToCommonResourcesDir
Executing task ':web:copyReleaseNotesToCommonResourcesDir' (up-to-date check took 0.003 secs) due to:
  No history is available.
:web:copyReleaseNotesToCommonResourcesDir (Thread[Daemon worker Thread 2,5,main]) completed. Took 0.028 secs.
:web:processResources (Thread[Daemon worker Thread 2,5,main]) started.
:web:processResources
file or directory 'C:\Users\susingan\Documents\Microsoft\ApplicationInsights-Java\web\src\main\resources', not found
file or directory 'C:\Users\susingan\Documents\Microsoft\ApplicationInsights-Java\web\src\main\resources', not found
Executing task ':web:processResources' (up-to-date check took 0.002 secs) due to:
  No history is available.
file or directory 'C:\Users\susingan\Documents\Microsoft\ApplicationInsights-Java\web\src\main\resources', not found
:web:processResources (Thread[Daemon worker Thread 2,5,main]) completed. Took 0.014 secs.
:web:classes (Thread[Daemon worker Thread 2,5,main]) started.
:web:classes
Skipping task ':web:classes' as it has no actions.
:web:classes (Thread[Daemon worker Thread 2,5,main]) completed. Took 0.004 secs.
:web:jar (Thread[Daemon worker Thread 2,5,main]) started.
:web:jar
Executing task ':web:jar' (up-to-date check took 0.015 secs) due to:
  No history is available.
:web:jar (Thread[Daemon worker Thread 2,5,main]) completed. Took 0.06 secs.
:logging:log4j1_2:prepareSources (Thread[Daemon worker Thread 2,5,main]) started.
:logging:log4j1_2:prepareSources
Executing task ':logging:log4j1_2:prepareSources' (up-to-date check took 0.038 secs) due to:
  No history is available.
:logging:log4j1_2:prepareSources (Thread[Daemon worker Thread 2,5,main]) completed. Took 0.207 secs.
:logging:log4j1_2:compileJava (Thread[Daemon worker Thread 2,5,main]) started.
:logging:log4j1_2:compileJava
file or directory 'C:\Users\susingan\Documents\Microsoft\ApplicationInsights-Java\logging\log4j1_2\src\main\java', not found
file or directory 'C:\Users\susingan\Documents\Microsoft\ApplicationInsights-Java\logging\log4j1_2\src\main\java', not found
Executing task ':logging:log4j1_2:compileJava' (up-to-date check took 0.03 secs) due to:
  No history is available.
All input files are considered out-of-date for incremental task ':logging:log4j1_2:compileJava'.
file or directory 'C:\Users\susingan\Documents\Microsoft\ApplicationInsights-Java\logging\log4j1_2\src\main\java', not found
Compiling with JDK Java compiler API.
Note: C:\Users\susingan\Documents\Microsoft\ApplicationInsights-Java\logging\log4j1_2\build\src\main\java\com\microsoft\applicationinsights\log4j\v1_2\internal\ApplicationInsightsLogEvent.java uses unchecked or unsafe operations.
Note: Recompile with -Xlint:unchecked for details.
:logging:log4j1_2:compileJava (Thread[Daemon worker Thread 2,5,main]) completed. Took 0.242 secs.
:logging:log4j1_2:copyReleaseNotesToCommonResourcesDir (Thread[Daemon worker Thread 2,5,main]) started.
:logging:log4j1_2:copyReleaseNotesToCommonResourcesDir
Executing task ':logging:log4j1_2:copyReleaseNotesToCommonResourcesDir' (up-to-date check took 0.005 secs) due to:
  No history is available.
:logging:log4j1_2:copyReleaseNotesToCommonResourcesDir (Thread[Daemon worker Thread 2,5,main]) completed. Took 0.015 secs.
:logging:log4j1_2:processResources (Thread[Daemon worker Thread 2,5,main]) started.
:logging:log4j1_2:processResources
file or directory 'C:\Users\susingan\Documents\Microsoft\ApplicationInsights-Java\logging\log4j1_2\src\main\resources', not found
file or directory 'C:\Users\susingan\Documents\Microsoft\ApplicationInsights-Java\logging\log4j1_2\src\main\resources', not found
file or directory 'C:\Users\susingan\Documents\Microsoft\ApplicationInsights-Java\logging\log4j1_2\build\src\main\resources', not found
Executing task ':logging:log4j1_2:processResources' (up-to-date check took 0.007 secs) due to:
  No history is available.
file or directory 'C:\Users\susingan\Documents\Microsoft\ApplicationInsights-Java\logging\log4j1_2\src\main\resources', not found
file or directory 'C:\Users\susingan\Documents\Microsoft\ApplicationInsights-Java\logging\log4j1_2\build\src\main\resources', not found
:logging:log4j1_2:processResources (Thread[Daemon worker Thread 2,5,main]) completed. Took 0.027 secs.
:logging:log4j1_2:classes (Thread[Daemon worker Thread 2,5,main]) started.
:logging:log4j1_2:classes
Skipping task ':logging:log4j1_2:classes' as it has no actions.
:logging:log4j1_2:classes (Thread[Daemon worker Thread 2,5,main]) completed. Took 0.0 secs.
:logging:log4j1_2:jar (Thread[Daemon worker Thread 2,5,main]) started.
:logging:log4j1_2:jar
Executing task ':logging:log4j1_2:jar' (up-to-date check took 0.008 secs) due to:
  No history is available.
:logging:log4j1_2:jar (Thread[Daemon worker Thread 2,5,main]) completed. Took 0.051 secs.
:logging:log4j2:prepareSources (Thread[Daemon worker Thread 2,5,main]) started.
:logging:log4j2:prepareSources
Executing task ':logging:log4j2:prepareSources' (up-to-date check took 0.017 secs) due to:
  No history is available.
:logging:log4j2:prepareSources (Thread[Daemon worker Thread 2,5,main]) completed. Took 0.185 secs.
:logging:log4j2:compileJava (Thread[Daemon worker Thread 2,5,main]) started.
:logging:log4j2:compileJava
file or directory 'C:\Users\susingan\Documents\Microsoft\ApplicationInsights-Java\logging\log4j2\src\main\java', not found
file or directory 'C:\Users\susingan\Documents\Microsoft\ApplicationInsights-Java\logging\log4j2\src\main\java', not found
Executing task ':logging:log4j2:compileJava' (up-to-date check took 0.044 secs) due to:
  No history is available.
All input files are considered out-of-date for incremental task ':logging:log4j2:compileJava'.
file or directory 'C:\Users\susingan\Documents\Microsoft\ApplicationInsights-Java\logging\log4j2\src\main\java', not found
Compiling with JDK Java compiler API.
:logging:log4j2:compileJava (Thread[Daemon worker Thread 2,5,main]) completed. Took 0.361 secs.
:logging:log4j2:copyReleaseNotesToCommonResourcesDir (Thread[Daemon worker Thread 2,5,main]) started.
:logging:log4j2:copyReleaseNotesToCommonResourcesDir
Executing task ':logging:log4j2:copyReleaseNotesToCommonResourcesDir' (up-to-date check took 0.002 secs) due to:
  No history is available.
:logging:log4j2:copyReleaseNotesToCommonResourcesDir (Thread[Daemon worker Thread 2,5,main]) completed. Took 0.017 secs.
:logging:log4j2:processResources (Thread[Daemon worker Thread 2,5,main]) started.
:logging:log4j2:processResources
file or directory 'C:\Users\susingan\Documents\Microsoft\ApplicationInsights-Java\logging\log4j2\src\main\resources', not found
file or directory 'C:\Users\susingan\Documents\Microsoft\ApplicationInsights-Java\logging\log4j2\src\main\resources', not found
file or directory 'C:\Users\susingan\Documents\Microsoft\ApplicationInsights-Java\logging\log4j2\build\src\main\resources', not found
Executing task ':logging:log4j2:processResources' (up-to-date check took 0.002 secs) due to:
  No history is available.
file or directory 'C:\Users\susingan\Documents\Microsoft\ApplicationInsights-Java\logging\log4j2\src\main\resources', not found
file or directory 'C:\Users\susingan\Documents\Microsoft\ApplicationInsights-Java\logging\log4j2\build\src\main\resources', not found
:logging:log4j2:processResources (Thread[Daemon worker Thread 2,5,main]) completed. Took 0.023 secs.
:logging:log4j2:classes (Thread[Daemon worker Thread 2,5,main]) started.
:logging:log4j2:classes
Skipping task ':logging:log4j2:classes' as it has no actions.
:logging:log4j2:classes (Thread[Daemon worker Thread 2,5,main]) completed. Took 0.001 secs.
:logging:log4j2:jar (Thread[Daemon worker Thread 2,5,main]) started.
:logging:log4j2:jar
Executing task ':logging:log4j2:jar' (up-to-date check took 0.031 secs) due to:
  No history is available.
:logging:log4j2:jar (Thread[Daemon worker Thread 2,5,main]) completed. Took 0.134 secs.
:logging:logback:prepareSources (Thread[Daemon worker Thread 2,5,main]) started.
:logging:logback:prepareSources
Executing task ':logging:logback:prepareSources' (up-to-date check took 0.023 secs) due to:
  No history is available.
:logging:logback:prepareSources (Thread[Daemon worker Thread 2,5,main]) completed. Took 0.119 secs.
:logging:logback:compileJava (Thread[Daemon worker Thread 2,5,main]) started.
:logging:logback:compileJava
file or directory 'C:\Users\susingan\Documents\Microsoft\ApplicationInsights-Java\logging\logback\src\main\java', not found
file or directory 'C:\Users\susingan\Documents\Microsoft\ApplicationInsights-Java\logging\logback\src\main\java', not found
Executing task ':logging:logback:compileJava' (up-to-date check took 0.034 secs) due to:
  No history is available.
All input files are considered out-of-date for incremental task ':logging:logback:compileJava'.
file or directory 'C:\Users\susingan\Documents\Microsoft\ApplicationInsights-Java\logging\logback\src\main\java', not found
Compiling with JDK Java compiler API.
:logging:logback:compileJava (Thread[Daemon worker Thread 2,5,main]) completed. Took 0.175 secs.
:logging:logback:copyReleaseNotesToCommonResourcesDir (Thread[Daemon worker Thread 2,5,main]) started.
:logging:logback:copyReleaseNotesToCommonResourcesDir
Executing task ':logging:logback:copyReleaseNotesToCommonResourcesDir' (up-to-date check took 0.002 secs) due to:
  No history is available.
:logging:logback:copyReleaseNotesToCommonResourcesDir (Thread[Daemon worker Thread 2,5,main]) completed. Took 0.023 secs.
:logging:logback:processResources (Thread[Daemon worker Thread 2,5,main]) started.
:logging:logback:processResources
file or directory 'C:\Users\susingan\Documents\Microsoft\ApplicationInsights-Java\logging\logback\src\main\resources', not found
file or directory 'C:\Users\susingan\Documents\Microsoft\ApplicationInsights-Java\logging\logback\src\main\resources', not found
file or directory 'C:\Users\susingan\Documents\Microsoft\ApplicationInsights-Java\logging\logback\build\src\main\resources', not found
Executing task ':logging:logback:processResources' (up-to-date check took 0.004 secs) due to:
  No history is available.
file or directory 'C:\Users\susingan\Documents\Microsoft\ApplicationInsights-Java\logging\logback\src\main\resources', not found
file or directory 'C:\Users\susingan\Documents\Microsoft\ApplicationInsights-Java\logging\logback\build\src\main\resources', not found
:logging:logback:processResources (Thread[Daemon worker Thread 2,5,main]) completed. Took 0.026 secs.
:logging:logback:classes (Thread[Daemon worker Thread 2,5,main]) started.
:logging:logback:classes
Skipping task ':logging:logback:classes' as it has no actions.
:logging:logback:classes (Thread[Daemon worker Thread 2,5,main]) completed. Took 0.0 secs.
:logging:logback:jar (Thread[Daemon worker Thread 2,5,main]) started.
:logging:logback:jar
Executing task ':logging:logback:jar' (up-to-date check took 0.007 secs) due to:
  No history is available.
:logging:logback:jar (Thread[Daemon worker Thread 2,5,main]) completed. Took 0.069 secs.
:distributions:compileJava (Thread[Daemon worker Thread 2,5,main]) started.
:distributions:compileJava
file or directory 'C:\Users\susingan\Documents\Microsoft\ApplicationInsights-Java\distributions\src\main\java', not found
Skipping task ':distributions:compileJava' as it has no source files.
:distributions:compileJava UP-TO-DATE
:distributions:compileJava (Thread[Daemon worker Thread 2,5,main]) completed. Took 0.001 secs.
:distributions:processResources (Thread[Daemon worker Thread 2,5,main]) started.
:distributions:processResources
file or directory 'C:\Users\susingan\Documents\Microsoft\ApplicationInsights-Java\distributions\src\main\resources', not found
Skipping task ':distributions:processResources' as it has no source files.
:distributions:processResources UP-TO-DATE
:distributions:processResources (Thread[Daemon worker Thread 2,5,main]) completed. Took 0.001 secs.
:distributions:classes (Thread[Daemon worker Thread 2,5,main]) started.
:distributions:classes
Skipping task ':distributions:classes' as it has no actions.
:distributions:classes UP-TO-DATE
:distributions:classes (Thread[Daemon worker Thread 2,5,main]) completed. Took 0.0 secs.
:distributions:jar (Thread[Daemon worker Thread 2,5,main]) started.
:distributions:jar
Skipping task ':distributions:jar' as task onlyIf is false.
:distributions:jar SKIPPED
:distributions:jar (Thread[Daemon worker Thread 2,5,main]) completed. Took 0.001 secs.
:samples:compileJava (Thread[Daemon worker Thread 2,5,main]) started.
:samples:compileJava
file or directory 'C:\Users\susingan\Documents\Microsoft\ApplicationInsights-Java\samples\src\plugins\resources', not found
Executing task ':samples:compileJava' (up-to-date check took 0.04 secs) due to:
  No history is available.
All input files are considered out-of-date for incremental task ':samples:compileJava'.
file or directory 'C:\Users\susingan\Documents\Microsoft\ApplicationInsights-Java\samples\src\plugins\resources', not found
Compiling with JDK Java compiler API.
:samples:compileJava (Thread[Daemon worker Thread 2,5,main]) completed. Took 0.232 secs.
:samples:generateSourceOriginProperties (Thread[Daemon worker Thread 2,5,main]) started.
:samples:generateSourceOriginProperties
Skipping task ':samples:generateSourceOriginProperties' as it has no actions.
:samples:generateSourceOriginProperties UP-TO-DATE
:samples:generateSourceOriginProperties (Thread[Daemon worker Thread 2,5,main]) completed. Took 0.001 secs.
:samples:processResources (Thread[Daemon worker Thread 2,5,main]) started.
:samples:processResources
Executing task ':samples:processResources' (up-to-date check took 0.003 secs) due to:
  No history is available.
:samples:processResources (Thread[Daemon worker Thread 2,5,main]) completed. Took 0.036 secs.
:samples:classes (Thread[Daemon worker Thread 2,5,main]) started.
:samples:classes
Skipping task ':samples:classes' as it has no actions.
:samples:classes (Thread[Daemon worker Thread 2,5,main]) completed. Took 0.0 secs.
:samples:jar (Thread[Daemon worker Thread 2,5,main]) started.
:samples:jar
Executing task ':samples:jar' (up-to-date check took 0.007 secs) due to:
  No history is available.
:samples:jar (Thread[Daemon worker Thread 2,5,main]) completed. Took 0.051 secs.
:test:performance:compileJava (Thread[Daemon worker Thread 2,5,main]) started.
:test:performance:compileJava
Executing task ':test:performance:compileJava' (up-to-date check took 0.023 secs) due to:
  No history is available.
All input files are considered out-of-date for incremental task ':test:performance:compileJava'.
Compiling with JDK Java compiler API.
:test:performance:compileJava (Thread[Daemon worker Thread 2,5,main]) completed. Took 0.248 secs.
:test:performance:processResources (Thread[Daemon worker Thread 2,5,main]) started.
:test:performance:processResources
Executing task ':test:performance:processResources' (up-to-date check took 0.003 secs) due to:
  No history is available.
:test:performance:processResources (Thread[Daemon worker Thread 2,5,main]) completed. Took 0.015 secs.
:test:performance:classes (Thread[Daemon worker Thread 2,5,main]) started.
:test:performance:classes
Skipping task ':test:performance:classes' as it has no actions.
:test:performance:classes (Thread[Daemon worker Thread 2,5,main]) completed. Took 0.0 secs.
:test:performance:jar (Thread[Daemon worker Thread 2,5,main]) started.
:test:performance:jar
Executing task ':test:performance:jar' (up-to-date check took 0.01 secs) due to:
  No history is available.
:test:performance:jar (Thread[Daemon worker Thread 2,5,main]) completed. Took 0.111 secs.
:test:webapps:bookstore-spring:compileJava (Thread[Daemon worker Thread 2,5,main]) started.
:test:webapps:bookstore-spring:compileJava
Executing task ':test:webapps:bookstore-spring:compileJava' (up-to-date check took 0.044 secs) due to:
  No history is available.
All input files are considered out-of-date for incremental task ':test:webapps:bookstore-spring:compileJava'.
Compiling with JDK Java compiler API.
:test:webapps:bookstore-spring:compileJava (Thread[Daemon worker Thread 2,5,main]) completed. Took 0.331 secs.
:test:webapps:bookstore-spring:processResources (Thread[Daemon worker Thread 2,5,main]) started.
:test:webapps:bookstore-spring:processResources
Executing task ':test:webapps:bookstore-spring:processResources' (up-to-date check took 0.003 secs) due to:
  No history is available.
:test:webapps:bookstore-spring:processResources (Thread[Daemon worker Thread 2,5,main]) completed. Took 0.04 secs.
:test:webapps:bookstore-spring:classes (Thread[Daemon worker Thread 2,5,main]) started.
:test:webapps:bookstore-spring:classes
Skipping task ':test:webapps:bookstore-spring:classes' as it has no actions.
:test:webapps:bookstore-spring:classes (Thread[Daemon worker Thread 2,5,main]) completed. Took 0.001 secs.
:test:webapps:bookstore-spring:jar (Thread[Daemon worker Thread 2,5,main]) started.
:test:webapps:bookstore-spring:jar
Executing task ':test:webapps:bookstore-spring:jar' (up-to-date check took 0.008 secs) due to:
  No history is available.
:test:webapps:bookstore-spring:jar (Thread[Daemon worker Thread 2,5,main]) completed. Took 0.078 secs.

BUILD SUCCESSFUL

Total time: 9.307 secs
Stopped 0 compiler daemon(s).
Received result Success[value=null] from daemon DaemonInfo{pid=35396, address=[6a0108c9-f06b-4195-aac4-7e5a7055b21b port:7493, addresses:[/127.0.0.1, /0:0:0:0:0:0:0:1]], idle=true, lastBusy=1475548417899, context=DefaultDaemonContext[uid=5835efc6-00d1-4b45-b370-1a6b25f97b40,javaHome=C:\Program Files\Java\jdk1.8.0_101,daemonRegistryDir=C:\Users\susingan\.gradle\daemon,pid=35396,idleTimeout=10800000,daemonOpts=-XX:MaxPermSize=256m,-XX:+HeapDumpOnOutOfMemoryError,-Xmx1024m,-Dfile.encoding=windows-1252,-Duser.country=US,-Duser.language=en,-Duser.variant]} (build should be done).

Running the gradle jar task after this results in BUILD SUCCESSFUL as follows

susingan@MININT-NHLS81D MINGW64 ~/Documents/Microsoft/ApplicationInsights-Java (master)
$ ./gradlew jar
:buildSrc:compileJava UP-TO-DATE
:buildSrc:compileGroovy UP-TO-DATE
:buildSrc:processResources UP-TO-DATE
:buildSrc:classes UP-TO-DATE
:buildSrc:jar UP-TO-DATE
:buildSrc:assemble UP-TO-DATE
:buildSrc:compileTestJava UP-TO-DATE
:buildSrc:compileTestGroovy UP-TO-DATE
:buildSrc:processTestResources UP-TO-DATE
:buildSrc:testClasses UP-TO-DATE
:buildSrc:test UP-TO-DATE
:buildSrc:check UP-TO-DATE
:buildSrc:build UP-TO-DATE
Environment variable 'JAVA_JRE_6' is not defined - falling back to use machine default Java SDK
Environment variable 'JAVA_JRE_6' is not defined - falling back to use machine default Java SDK
Native binaries build is only supported on Windows systems; native components will not be built.
Environment variable 'JAVA_JRE_6' is not defined - falling back to use machine default Java SDK
Environment variable 'JAVA_JRE_6' is not defined - falling back to use machine default Java SDK
Environment variable 'JAVA_JRE_6' is not defined - falling back to use machine default Java SDK
Environment variable 'JAVA_JRE_6' is not defined - falling back to use machine default Java SDK
Environment variable 'JAVA_JRE_6' is not defined - falling back to use machine default Java SDK
Environment variable 'JAVA_JRE_6' is not defined - falling back to use machine default Java SDK
Environment variable 'JAVA_JRE_6' is not defined - falling back to use machine default Java SDK
Environment variable 'JAVA_JRE_6' is not defined - falling back to use machine default Java SDK
:agent:compileJava UP-TO-DATE
:agent:processResources UP-TO-DATE
:agent:classes UP-TO-DATE
:agent:shadowJar UP-TO-DATE
:agent:jar SKIPPED
:core:compileJava UP-TO-DATE
:core:copyReleaseNotesToCommonResourcesDir UP-TO-DATE
:core:generateVersionProperties UP-TO-DATE
:core:processResources UP-TO-DATE
:core:classes UP-TO-DATE
:core:jar UP-TO-DATE
:web:compileJava UP-TO-DATE
:web:copyReleaseNotesToCommonResourcesDir UP-TO-DATE
:web:processResources UP-TO-DATE
:web:classes UP-TO-DATE
:web:jar UP-TO-DATE
:logging:log4j1_2:prepareSources UP-TO-DATE
:logging:log4j1_2:compileJava UP-TO-DATE
:logging:log4j1_2:copyReleaseNotesToCommonResourcesDir UP-TO-DATE
:logging:log4j1_2:processResources UP-TO-DATE
:logging:log4j1_2:classes UP-TO-DATE
:logging:log4j1_2:jar UP-TO-DATE
:logging:log4j2:prepareSources UP-TO-DATE
:logging:log4j2:compileJava UP-TO-DATE
:logging:log4j2:copyReleaseNotesToCommonResourcesDir UP-TO-DATE
:logging:log4j2:processResources UP-TO-DATE
:logging:log4j2:classes UP-TO-DATE
:logging:log4j2:jar UP-TO-DATE
:logging:logback:prepareSources UP-TO-DATE
:logging:logback:compileJava UP-TO-DATE
:logging:logback:copyReleaseNotesToCommonResourcesDir UP-TO-DATE
:logging:logback:processResources UP-TO-DATE
:logging:logback:classes UP-TO-DATE
:logging:logback:jar UP-TO-DATE
:distributions:compileJava UP-TO-DATE
:distributions:processResources UP-TO-DATE
:distributions:classes UP-TO-DATE
:distributions:jar SKIPPED
:samples:compileJava UP-TO-DATE
:samples:generateSourceOriginProperties UP-TO-DATE
:samples:processResources UP-TO-DATE
:samples:classes UP-TO-DATE
:samples:jar UP-TO-DATE
:test:performance:compileJava UP-TO-DATE
:test:performance:processResources UP-TO-DATE
:test:performance:classes UP-TO-DATE
:test:performance:jar UP-TO-DATE
:test:webapps:bookstore-spring:compileJava UP-TO-DATE
:test:webapps:bookstore-spring:processResources UP-TO-DATE
:test:webapps:bookstore-spring:classes UP-TO-DATE
:test:webapps:bookstore-spring:jar UP-TO-DATE

BUILD SUCCESSFUL

Total time: 2.404 secs

Error when using `TelemetryClient.trackSessionState`

The code

        telemetryClient = new TelemetryClient();
        telemetryClient.trackSessionState(SessionState.Start);
        telemetryClient.trackEvent("TestEvent");
        telemetryClient.trackSessionState(SessionState.End);

results in two identical errors

Failed to send, Bad request : {"itemsReceived":1,"itemsAccepted":0,"errors":[{"index":0,"statusCode":400,"message":"Unknown domain type 'Microsoft.ApplicationInsights.SessionStateData'"}]}

The session is not tracked in the online portal but the custom event "TestEvent" shows up (thus the connection works in principle). How can I track session start and end?

WebApp name is not found, unable to register WebApp

Hi,

I am having an error running the application insights log4j appender when running my application. It works fine if I load the WAR file in a tomcat server. The error I get is:

AI: ERROR 19-04-2017 17:33, 318: Exception while fetching WebApp name: 'org.apache.felix.framework.BundleWiringImpl$BundleClassLoaderJava5 cannot be cast to java.net.URLClassLoader'
AI: ERROR 19-04-2017 17:33, 318: WebApp name is not found, unable to register WebApp

Quick response will be very helpful.
Thanks in advance.

Spring initialization not working?

While initializing the RequestNameHandlerInterceptorAdapter I can't make it to work automatically as described. I am using annotation based config, but still the reaction is somewhat blank:

@EnableMetrics
@SpringBootApplication(scanBasePackages = {"my.package", "com.microsoft.applicationinsights.web.spring"})
public class FrontEndApplication {
    public static void main(String[] args) {
        SpringApplication.run(FrontEndApplication.class, args);
    }
}

If I will manually call TelemetryConfiguration.getActive() it will work like a charm...

@EnableMetrics
@SpringBootApplication(scanBasePackages = {"my.package", "com.microsoft.applicationinsights.web.spring"})
public class FrontEndApplication {
    public static void main(String[] args) {
        SpringApplication.run(FrontEndApplication.class, args);
        TelemetryConfiguration configuration = TelemetryConfiguration.getActive();
    }
}

Is this a correct way and I need to manually initialize ApplicationInisights? Or am I missing something else...

Ability to flush logs at shutdown

I am following this tutorialL https://docs.microsoft.com/en-us/azure/application-insights/app-insights-java-get-started to use this component and it is not clear how I can flush all logs to AppInsights before shutting down. I saw that flush methods exist (added here #142) but I am not sure if they apply to logs and how I can use them when the app shuts down (since I never instantiate anything in Java, I fully rely on logback configuration). Would it be possible to get a small explanation ?

Character corruption at the time of using Java SDK

I have tried to use Java SDK for AppInsights, there is character corruption like below.
input message: "runtimeException for 日本語確認"
display message at portal: "runtimeException for ���{��m�F"

Unable to run Application Insights Java Agent 1.0.7

This error was thrown when I started Wildfly 10 with Application Insights Java Agent 1.0.7.

Agent is NOT activated: failed to load to bootstrap class loader: com.microsoft.applicationinsights.agent.internal.config.AgentConfiguration.isSelfRegistrationMode()Z

Do you have any workaround to fix this issue?

Thank you

Active TelemetryConfiguration initialized several times recursively - client then does not function

We are using AI logback appender with empty ApplicationInsights.xml config file. Additionally we create the new TelemetryClient instance in main method to send custom events.
This leads to creation of 3 active configurations after which SDK does not function properly and does not send out any telemetry.

I've attached stack trace with recursive initialization of 3 active configurations

Explicitly disabling QuickPulse in xml configuration and removing explicit client instance creation helps.
Could you please consider this a critical issue? One will never know which changes in code/configuration will lead to client failure.
StackTrace.txt

SQL Server prepared statement setObject instrumentation error

java.lang.VerifyError: StackMapTable format error: bad type array size in method com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement.setObject(ILjava/lang/Object;)V
    at com.microsoft.sqlserver.jdbc.SQLServerConnection.prepareStatement(SQLServerConnection.java:2167)
    at com.microsoft.sqlserver.jdbc.SQLServerConnection.prepareStatement(SQLServerConnection.java:1853)
    at org.apache.tomcat.dbcp.dbcp2.DelegatingConnection.prepareStatement(DelegatingConnection.java:287)
    at org.apache.tomcat.dbcp.dbcp2.DelegatingConnection.prepareStatement(DelegatingConnection.java:287)
    at org.hibernate.engine.jdbc.internal.StatementPreparerImpl$5.doPrepare(StatementPreparerImpl.java:146)
    at org.hibernate.engine.jdbc.internal.StatementPreparerImpl$StatementPreparationTemplate.prepareStatement(StatementPreparerImpl.java:172)
    at org.hibernate.engine.jdbc.internal.StatementPreparerImpl.prepareQueryStatement(StatementPreparerImpl.java:148)
    at org.hibernate.loader.Loader.prepareQueryStatement(Loader.java:1927)
    at org.hibernate.loader.Loader.executeQueryStatement(Loader.java:1896)
    at org.hibernate.loader.Loader.executeQueryStatement(Loader.java:1874)
    at org.hibernate.loader.Loader.doQuery(Loader.java:919)
    at org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:336)
    at org.hibernate.loader.Loader.doList(Loader.java:2610)
    at org.hibernate.loader.Loader.doList(Loader.java:2593)
    at org.hibernate.loader.Loader.listIgnoreQueryCache(Loader.java:2422)
    at org.hibernate.loader.Loader.list(Loader.java:2417)
    at org.hibernate.loader.hql.QueryLoader.list(QueryLoader.java:501)
    at org.hibernate.hql.internal.ast.QueryTranslatorImpl.list(QueryTranslatorImpl.java:371)
    at org.hibernate.engine.query.spi.HQLQueryPlan.performList(HQLQueryPlan.java:216)
    at org.hibernate.internal.SessionImpl.list(SessionImpl.java:1339)
    at org.hibernate.internal.QueryImpl.list(QueryImpl.java:87)
    at org.hibernate.jpa.internal.QueryImpl.list(QueryImpl.java:606)
    at org.hibernate.jpa.internal.QueryImpl.getResultList(QueryImpl.java:483)

Using Java 8, HIbernate, Tomcat 8, and the same error is coming for the MS JDBC4 Driver 6.0, 4.2 as well as for the JDBC42 drivers version 6.0 and 4.2.

JAVA - Caused by: java.lang.NoClassDefFoundError: org/apache/http/impl/conn/PoolingClientConnectionManager

Copy from: https://github.com/Microsoft/ApplicationInsights-Home/issues/55

@oak-tree reported:

I'm using Java,Tomcat, Spring and log4js. I'm trying to use applicationinsights with those tools.
I followed this links https://azure.microsoft.com/en-us/documentation/articles/app-insights-java-get-started/

But i get Caused by: java.lang.NoClassDefFoundError: org/apache/http/impl/conn/PoolingClientConnectionManager

Ok it seems that applicationInsights has dependency on https://mvnrepository.com/artifact/org.apache.httpcomponents/httpclient/4.5.2
maybe its worth to update the documents for that?

Response code < 400 is treated as a fail request

By default, it flags as failed any request with a response code >= 400. However, we found that it also flag response code < 400 as fail request as well. Can you please check it is a bug or something?

Kind regards,
Yui

ReflectionUtils and AgentConnectors in core throw warnings on javadoc task

The ReflectionUtils and AgentConnector files throw warnings for missing @return and for having no description of parameters for javadoc.

:core:copyReleaseNotesToCommonResourcesDir UP-TO-DATE
:core:generateVersionProperties UP-TO-DATE
:core:processResources UP-TO-DATE
:core:classes UP-TO-DATE
:core:javadocC:\Users\susingan\Documents\Microsoft\ApplicationInsights-Java\core\src\main\java\com\microsoft\applicationinsights\internal\config\ReflectionUtils.java:157: warning: no description for @param
     * @param <T>
       ^
C:\Users\susingan\Documents\Microsoft\ApplicationInsights-Java\core\src\main\java\com\microsoft\applicationinsights\internal\agent\AgentConnector.java:108: warning: no @return
    public synchronized boolean registerSelf() {
                                ^

2 warnings

Relocate all Web Jar dependencies

As per this comment in the source code, the current shadow Jar process does not relocate javax.annotation nor org.objectweb causing Security Exception like the following:

java.lang.SecurityException: class "org.objectweb.asm.MethodAdapter"'s signer information does not match signer information of other classes in the same package
at java.lang.ClassLoader.checkCerts(ClassLoader.java:898)
at java.lang.ClassLoader.preDefineClass(ClassLoader.java:668)
at java.lang.ClassLoader.defineClass(ClassLoader.java:761)
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)

Memory leak when logging exception telemetry

The WebRequestTrackingFilter uses ThreadLocal to store state. This state is not cleaned up in a finally-clause, but it's cleaned up on this line. That line is never reached if chain.doFilter throws an exception since the exception handling rethrows the exception.

By the way, wouldn't the rethrow make it impossible to correlate the exception with the request? Since no telemetry in sent with request information? How does that correlation work?

By the way2: It's good practice to have classes not marked with final and use protected for fields and methods when writing libraries. When bugs such as these occur, it is much easier for clients to deal with them. With the code as it stands now, I'm left with forking the project and releasing an in-house version with a fix, or copy all the code into my code base.

Misleading error trace in when agent is not configured

When the agent is not configured, the following error trace is logged:
AI: ERROR 18-08-2016 03:45, 15: Failed to register 'ApplicationInsightsWebFilter', exception: 'com/microsoft/applicationinsights/agent/internal/coresync/AgentNotificationsHandler'

This is not really an error. It only means that the agent is not configured and hence was not loaded.

CPU Usage Spikes When Offline

I'm using App Insights in a plugin I'm developing and the problem is if somebody is working offline, the CPU usage spikes really high. I tried to track down what specifically is causing this and it looks to be in the TelemetryConfiguration class somewhere. When I comment out the lines "TelemetryConfiguration.getActive()" I don't see the CPU issue but once TelemetryConfiguration is initialized, the CPU usage spikes when you go offline.

My specific code can be found here: https://github.com/Microsoft/vso-intellij/blob/master/plugin/src/com/microsoft/alm/plugin/telemetry/TfsTelemetryHelper.java#L56

If you need any other additional information or questions please let me know.

Thanks,
-Leah

Can't load application insights appender when running service on Wildfly swarm

Hi,

I am having trouble running the application insights logback appender when running my application with an embedded Wildfly swarm server. It works fine if I load the WAR file in a tomcat server, for example. The error i get is:

2016-07-07 21:54:24,952 ERROR [stderr] (default task-1) AI: ERROR 07-07-2016 21:54, 59: Exception while fetching WebApp name: 'org.jboss.modules.ModuleClassLoader cannot be cast to java.net.URLClassLoader'
2016-07-07 21:54:24,954 ERROR [stderr] (default task-1) AI: ERROR 07-07-2016 21:54, 59: WebApp name is not found, unable to register WebApp
2016-07-07 21:54:24,954 ERROR [stderr] (default task-1) AI: INFO 07-07-2016 21:54, 59: Successfully registered the filter 'ApplicationInsightsWebFilter'
2016-07-07 21:54:24,961 ERROR [stderr] (default task-1) AI: INFO 07-07-2016 21:54, 59: Configuration file has been successfully found as resource

The dependencies im using are

compile group: 'com.microsoft.azure', name: 'applicationinsights-web', version: '1.0.4'
compile group: 'com.microsoft.azure', name: 'applicationinsights-logging-logback', version: '1.0.4'

Is there a known way around this?

testSDKInfoFileIsWrittenWithInstrumentationKey fails on Fedora Linux 22

I ran gradlew test on my Fedora 22 VM and one of the tests in core failed:

Class: com.microsoft.applicationinsights.extensibility.initializer.docker.DockerContextInitializerTests
Method: testSDKInfoFileIsWrittenWithInstrumentationKey

Argument(s) are different! Wanted:
fileFactory.create(
    "/usr/appinsights/docker/sdk.info",
    "InstrumentationKey=A-test-instrumentation-key"
);
-> at com.microsoft.applicationinsights.extensibility.initializer.docker.DockerContextInitializerTests.testSDKInfoFileIsWrittenWithInstrumentationKey(DockerContextInitializerTests.java:133)
Actual invocation has different arguments:
fileFactory.create(
    "/usr/appinsights/docker/sdk.info",
    "InstrumentationKey=c9341531-05ac-4d8c-972e-36e97601d5ff"
);

A quick spelunking in the code suggests that the test might be sensitive to ordering since it [indirectly] accesses the TelemetryConfiguration singleton and its configuration wasn't loaded from the ApplicationInsights.xml test resource.

NotSerializableException when using TelemetryClient with Apache Storm

Hi,
I'm using Application Insights to capture Custom events and Exceptions occurring in my Storm Topology. I have used TelemetryClient Class in my Bolts as follows:
private TelemetryClient telemetry = new TelemetryClient();

When I run my topology, I'm getting NotSerializableException on TelemetryClient class. PFB Exception StackTrace:

Caused by: java.io.NotSerializableException: com.microsoft.applicationinsights.TelemetryClient
    at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1183) ~[?:1.7.0_80]
    at java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1547) ~[?:1.7.0_80]
    at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1508) ~[?:1.7.0_80]
    at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1431) ~[?:1.7.0_80]
    at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1177) ~[?:1.7.0_80]
    at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:347) ~[?:1.7.0_80]

Does it make sense to implement this class using Serializable interface or Should we write a custom serializer for this Class?

Javaagent doesn't work on linux

The javaagent doesn't run on linux. Applications doesn't start and quits immediately.

Testcase available here: foo.zip

The attached zip contains the output from mvn archetype:generate with defaults everything. I configured maven-jar-plugin to use the proper main class. Run with java -jar agentbug/target/agentbug-1.0-SNAPSHOT.jar

Tests (OpenJDK 8 on Alpine):

docker@docker1:~$ docker run --rm -v /c/Users/gmjgo/Downloads/foo/:/foo java:8-jre-alpine java -javaagent:foo/applicationinsights-agent-1.0.3.jar -jar foo/agentbug/target/agentbug-1.0-SNAPSHOT.jar
docker@docker1:~$ docker run --rm -v /c/Users/gmjgo/Downloads/foo/:/foo java:8-jre-alpine java -jar foo/agentbug/target/agentbug-1.0-SNAPSHOT.jar
Hello World!
docker@docker1:~$

Doesn't work with Oracle either:

docker@docker1:~$ docker run --rm -v /c/Users/gmjgo/Downloads/foo/:/foo lwieske/java-8 java -javaagent:foo/applicationinsights-agent-1.0.3.jar -jar foo/agentbug/target/agentbug-1.0-SNAPSHOT.jar
docker@docker1:~$

Hard time unit testing adal4j

We're having a hard time unit testing adal4j in isolation. The way the authentication needs to be set up (creating a new com.microsoft.aad.adal4j.AuthenticationContext) forces us to run unit tests in an environment where an active AAD needs to be present. This can be circumvented by using debatable products as PowerMock (intercepting the 'new' and allowing a replacement to be put into place). Also the use of final classes (such as com.microsoft.aad.adal4j.AuthenticationResult) forces the use of PowerMock.
We would rather not use PowerMock to run our unit tests, and would rather use a more controlled adal4j provided test framework, or use a adal4j provided factory.

If that factory were to be implementing an interface, that would make injecting the factory as a collaborator a neat pattern, allowing for easy and clear unit testing possible. Removing the final directive from the AuthenticationResult, replacing this with an interface and an actual implementing class (which can be made final if you should wish to) also makes for much easier unit testing without the use of PowerMock.

Are there any documents in place guiding us in creating isolated unit tests which would not require an active ActiveDirectory to be present?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.