Google Cloud Platform agent error
search cancel

Google Cloud Platform agent error

book

Article ID: 400711

calendar_today

Updated On:

Products

CA Application Performance Management (APM / Wily / Introscope)

Issue/Introduction

When using Google Cloud Platform Agent, we are seeing the following exception:

Agent logs throwing out-of-bounds error:

5/21/25 05:55:41 PM GMT [ERROR] [IntroscopeAgent.RESTMon] [profile-8@@gcp.1~~loadbalancing DataCollector] Exception occurred in executing the URL
java.lang.StringIndexOutOfBoundsException: Range [5, -1) out of bounds for length 40
    at java.base/jdk.internal.util.Preconditions$1.apply(Unknown Source)
    at java.base/jdk.internal.util.Preconditions$1.apply(Unknown Source)
    at java.base/jdk.internal.util.Preconditions$4.apply(Unknown Source)
    at java.base/jdk.internal.util.Preconditions$4.apply(Unknown Source)
    at java.base/jdk.internal.util.Preconditions.outOfBounds(Unknown Source)
    at java.base/jdk.internal.util.Preconditions.outOfBoundsCheckFromToIndex(Unknown Source)
    at java.base/jdk.internal.util.Preconditions.checkFromToIndex(Unknown Source)
    at java.base/java.lang.String.checkBoundsBeginEnd(Unknown Source)
    at java.base/java.lang.String.substring(Unknown Source)
    at com.ca.ce.restmon.authorization.OAuthUtils.getPrivateKey(OAuthUtils.java:318)
    at com.ca.ce.restmon.authorization.OAuthUtils.getGoogleCredentials(OAuthUtils.java:262)
    at com.ca.ce.restmon.authorization.OAuthUtils.updateOAuthGoogle(OAuthUtils.java:249)
    at com.ca.ce.restmon.authorization.OAuthUtils.updateOAuthGoogleProxy(OAuthUtils.java:228)
    at com.ca.ce.restmon.authorization.OAuthUtils.updateAccessToken(OAuthUtils.java:188)
    at com.ca.ce.restmon.rest.rest.RestApiCallFactory.getRestApiCall(RestApiCallFactory.java:91)
    at com.ca.ce.restmon.core.ExecuteUrlTask.call(ExecuteUrlTask.java:25)
    at com.ca.ce.restmon.core.DataCollector.submitRequestUrlTask(DataCollector.java:1475)
    at com.ca.ce.restmon.core.DataCollector.executeUrlTasks(DataCollector.java:1275)
    at com.ca.ce.restmon.core.DataCollector.collectEmptyUrlsData(DataCollector.java:1090)
    at com.ca.ce.restmon.core.DataCollector.collectAndStoreAllData(DataCollector.java:359)
    at com.ca.ce.restmon.core.DataCollector.collectAndStoreAllData(DataCollector.java:325)
    at com.ca.ce.restmon.core.DataCollector.collectAndStoreAllData(DataCollector.java:317)
    at com.ca.ce.restmon.handlers.profile.ProfileHandler.processProfile(ProfileHandler.java:647)
    at com.ca.apm.agent.extension.restmon.core.MetricCollector.run(MetricCollector.java:110)
    at com.ca.apm.agent.extension.restmon.core.MetricCollector.call(MetricCollector.java:94)
    at com.ca.apm.agent.extension.restmon.core.MetricCollector.call(MetricCollector.java:51)
    at java.base/java.util.concurrent.FutureTask.run(Unknown Source)
    at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
    at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
    at java.base/java.lang.Thread.run(Unknown Source)
5/21/25 05:55:41 PM GMT [ERROR] [IntroscopeAgent.RESTMon] [profile-3@@gcp.1~~storage DataCollector] Error in executing the URL. URL Name: projectlist, URL: https://cloudresourcemanager.googleapis.com/v1/projects
5/21/25 05:55:41 PM GMT [ERROR] [IntroscopeAgent.RESTMon] [profile-3@@gcp.1~~storage DataCollector] Exception occurred in executing the URL
java.lang.StringIndexOutOfBoundsException: Range [5, -1) out of bounds for length 40
    at java.base/jdk.internal.util.Preconditions$1.apply(Unknown Source)
    at java.base/jdk.internal.util.Preconditions$1.apply(Unknown Source)
    at java.base/jdk.internal.util.Preconditions$4.apply(Unknown Source)
    at java.base/jdk.internal.util.Preconditions$4.apply(Unknown Source)
    at java.base/jdk.internal.util.Preconditions.outOfBounds(Unknown Source)
    at java.base/jdk.internal.util.Preconditions.outOfBoundsCheckFromToIndex(Unknown Source)
    at java.base/jdk.internal.util.Preconditions.checkFromToIndex(Unknown Source)
    at java.base/java.lang.String.checkBoundsBeginEnd(Unknown Source)
    at java.base/java.lang.String.substring(Unknown Source)
    at com.ca.ce.restmon.authorization.OAuthUtils.getPrivateKey(OAuthUtils.java:318)
    at com.ca.ce.restmon.authorization.OAuthUtils.getGoogleCredentials(OAuthUtils.java:262)
    at com.ca.ce.restmon.authorization.OAuthUtils.updateOAuthGoogle(OAuthUtils.java:249)
    at com.ca.ce.restmon.authorization.OAuthUtils.updateOAuthGoogleProxy(OAuthUtils.java:228)
    at com.ca.ce.restmon.authorization.OAuthUtils.updateAccessToken(OAuthUtils.java:188)
    at com.ca.ce.restmon.rest.rest.RestApiCallFactory.getRestApiCall(RestApiCallFactory.java:91)
    at com.ca.ce.restmon.core.ExecuteUrlTask.call(ExecuteUrlTask.java:25)
    at com.ca.ce.restmon.core.DataCollector.submitRequestUrlTask(DataCollector.java:1475)
    at com.ca.ce.restmon.core.DataCollector.executeUrlTasks(DataCollector.java:1275)
    at com.ca.ce.restmon.core.DataCollector.collectEmptyUrlsData(DataCollector.java:1090)
    at com.ca.ce.restmon.core.DataCollector.collectAndStoreAllData(DataCollector.java:359)
    at com.ca.ce.restmon.core.DataCollector.collectAndStoreAllData(DataCollector.java:325)
    at com.ca.ce.restmon.core.DataCollector.collectAndStoreAllData(DataCollector.java:317)
    at com.ca.ce.restmon.handlers.profile.ProfileHandler.processProfile(ProfileHandler.java:647)
    at com.ca.apm.agent.extension.restmon.core.MetricCollector.run(MetricCollector.java:110)
    at com.ca.apm.agent.extension.restmon.core.MetricCollector.call(MetricCollector.java:94)
    at com.ca.apm.agent.extension.restmon.core.MetricCollector.call(MetricCollector.java:51)
    at java.base/java.util.concurrent.FutureTask.run(Unknown Source)
    at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
    at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
    at java.base/java.lang.Thread.run(Unknown Source)

 

Environment

Agent InfrastructureAgent Release 25.5.1.11 (Build 990011)

Resolution

Basically, the error is related to the clientsecret used.

java.lang.StringIndexOutOfBoundsException: Range [5, -1) out of bounds for length 40

Please do the following:

Change your Bundle as appropriate, the ClientSecret must be entered in plain text and APMIA restarted.

# Changing this property requires restarting the Monitored Process
introscope.agent.gcp.profiles.gcp.1.clientid=UseTheClientID

# Mandatory Field, client email of the GCP Account to be monitored
#
# Changing this property requires restarting the Monitored Process
introscope.agent.gcp.profiles.gcp.1.clientemail=UseTheMail

# Changing this property requires restarting the Monitored Process
introscope.agent.gcp.profiles.gcp.1.clientsecret=-----BEGIN PRIVATE KEY-----\nREPLACE THE PRIVATE KEY PLAIN TEXT HERE\n-----END PRIVATE KEY-----\n

Restart the APMIA