How to achieve invocation-level granularity for multiple resolver functions in a single Forge page?

Hi everyone,

My name is Carlos Fernández, and I’m part of the Product team at Deiser

We’re developing several Forge apps using Custom UI, and I have a question about invocation monitoring and granularity in the developer console.

In my app, I define several functions using resolver.define() inside a single resolver handler (e.g., getText, getText2, etc.), and then I export that handler in my code:

const resolver = new Resolver();
resolver.define('getText', () => { ... });
resolver.define('getText2', () => { ... });
export const handler = resolver.getDefinitions();

In my manifest.yml, I associate this single resolver function with my global page:

modules:
  jira:globalPage:
    - key: my-page
      resource: main
      resolver:
        function: resolver
  function:
    - key: resolver
      handler: index.handler

The issue:
In the Atlassian Forge developer console (under “Invocations”), all the invocations for any of the defined resolver functions (getText, getText2, etc.) are grouped under the single handler name (resolver).
This means I cannot see which specific function was called, nor can I get invocation times or metrics per resolver function — everything is aggregated at the handler level.

My questions:

  1. Is there any way to achieve more fine-grained monitoring/metrics for each resolver.define function, so I can see which function was actually invoked from the frontend, and how often?
  2. Is the only option to have one resolver handler per function (and thus per page/module), or is there any workaround to get per-function granularity in monitoring?
  3. How do you handle this in your apps if you have many logical backend functions behind a single resolver handler?

Any advice, best practices, or insight would be appreciated!

Thank you!

Carlos Fernández

4 Likes