Your data. Anywhere you go.

New Relic for iOS or Android


Download on the App Store    Android App on Google play


New Relic Insights App for iOS


Download on the App Store


Learn more

Close icon

Feature Idea: Monitor serverless functions - IBM Cloud Functions

feature-idea
cloud
ibm
serverless
ibm-cloud-functions

#1

I want to monitor performance of cloud functions. I tried configuring java client using Maven. Then I deployed the function, executed several times. I do not see data is appearing in APM. Is there a different setup I have to do for cloud functions similar to Lamda setup?


New Relic Edit

  • I want this, too
  • I have more info to share (reply below)
  • I have a solution for this

0 voters

We take feature ideas seriously and our product managers review every one when plotting their roadmaps. However, there is no guarantee this feature will be implemented. This post ensures the idea is put on the table and discussed though. So please vote and share your extra details with our team.


#2

The agent when it initializes should generate a couple lines stating where it is reading the configuration file from and where it is writing the logging information to and that information should go to wherever he logging information for the Java process goes. The Java process should reflect the startup JVM options and you should see the -javaagent argument included.
Also, the agent will create a log file by default in a /logs folder that is a child of where the newrelic.jar file resides.

Are you seeing any of these?


#3

When using IBM Cloud functions, we don’t have access to backend since its a server less offering. We can see logs generated by the function using LogDNA. But I did not see any logs generated by the agent.


#4

@kolithad, thank you for your response. The “installation” of any java agent is designed to be dead simple. It is part of the Java Programming Language. Simply pass the -javaagent flag into the JVM with the path to the jar. This is done much the same way that Heap Options are set. Since you have mentioned that the logs aren’t getting generated, could you please check if the -javaagent flag has been passed to the correct place? you can verify that the javaagent flag is being passed into JVM by running step 3 in the doc here:

Are you seeing the flag occurrence in the output of the command?


#5

The challenge with IBM Cloud functions is that we cannot pass any startup parameters such as -javaagent.

Following is how we deploy uber jar to the cloud. Once deployed, it gives a https endpoint which we can invoke.

packages:
poc-performance:
actions:
function-1:
function: target/newrelicfunction.jar
runtime: java8
main: com.poc.FunctionApp


#6

@kolithad many aspects of cloud and servlerless environments present challenges with traditional Java design and our agent also falls into that category. In fact, a good number of the APM language agents are going to have some issues as the initial design was during a time when most of the environment was on-prem servers. Some languages can adapt quicker but Java has a lot of complexity that the move is not trivial.

If you notice many of the new product announcements around observability from New Relic are about the new platform. Fortunately, APM metrics can still be forwarded and included with the new platform data but it’s going to take quite a bit of effort to update the agents to run in the fancy new containers so the new things use newer open source technology that is more similar to what the vendors for the containers are implementing.

Back to the comment from @mlavania to get our Java agent into the application to instrument and trace the classes and methods, it’s going to take the way Java uses Java agents. I’ve heard of ways to do it other than adding the -javaagent to the JVM options but we never designed it othewise. Maybe someone here in the community has some tips that are outside of the scope that.


#7

Thanks @Jeanie_Swan. I am sure the community would like to see serverless monitoring feature gets added to the agent. Until then our distributed tracing will have to split between New Relic and LogDNA.


#8

@kolithad I submitted this as a feature request to be considered by Product Management.

This has also been moved to our Feature Ideas category and a poll has been added.