Is there a way to know how much an extension is being used in the KNIME Business Hub?

Hi everyone,

We would like to get some statistics about extension usage (e.g. how many workflows use a specific extension) in the KNIME Business Hub.

Any idea about an efficient way to do that?

Thank you.

@misterhd I am not aware of any workflows or dashboard specifically related to pulling data on extension usage within your Hub environment. However, you might be able to get some useful data using some of the KNIME Business Hub Admin Workflows or by using Hub’s catalog-service API.

The API offers a number of endpoints for querying data on objects (components, nodes, extensions, workflows, etc…) stored in Hub. Including some search endpoints that will list public workflows containing a specific node or nodes from specific extensions. Please note that most of the catalog API endpoints will only return data for the specified account (user or team) or for public objects. As such this may not give you a complete picture.

To better assist you, could you please explain your use case, specifically what you’re trying to achieve?

The Hub endpoint you need to call is as follows. You can construct it using a Column Expressions node with the formula below. For this, you’ll need the item_id and the base URL of the Hub:

replace(
  replace(
    join(variable("hub_base_url"), "/repository/", column("item_id"), "?details=aggregated&version=current-state"),
    "%2F", "/"
  ),
  "+", "%20"
)

You can use components like Hub Connector and List Items to retrieve the required parameters for the endpoint call.

The response will be a JSON object. For example, you can extract the extension name using this JSONPath:

$['details']['aggregatedFeatures'][*]['featureName']

If you correlate this data with job execution data, you can build a proxy view of extension usage on the Hub.

This app can help you with execution related data

I hope this helps! Let us know if you need further clarification.
Francesco

2 Likes

Many thanks!
Almost there :slight_smile:
This endpoint would be perfect but it can only return public stuff, even as a Global Hub Admin. It would be great if I could do this same query for the whole Hub, since it’s exactly what I am looking for…

api.{base-URL}.com/list/workflows/extension/{extension_ID}

Thanks a lot!

What I want to do is exactly the following:

Get a list of all the workflows in the whole Hub (all the Teams) that use a specific extension.

For example:

  • Extension A is used by 20 workflows.
  • Extension B is used by 15 workflows.

etc.