Troubleshooting Matillion agent for Snowflake
This article contains fixes and recommendations for some common problems encountered when installing and using the Matillion agent for Snowflake.
Agent status hasn't changed to READY
If your agent status remains in PENDING or some other state and doesn't change to READY, you can inspect the logs of the agent to determine the probable cause. To inspect the logs:
- Open the app.
- Click the App events tab.
- Click View logs.
-
Run the following query:
SELECT TIMESTAMP as time, COALESCE(TRY_PARSE_JSON(VALUE), VALUE) AS LOG FROM <EVENTS_TABLE> WHERE RESOURCE_ATTRIBUTES['snow.application.name'] = '<APPLICATION_NAME>' or RESOURCE_ATTRIBUTES['snow.database.name'] = '<APPLICATION_NAME>' ORDER BY time desc
Running this query will give you the latest logs for the agent, which you can examine to determine the cause of the problem.
Note
- To view logs, you will need to configure an event table in the Snowflake environment. Read Event table overview for details.
- You may need to run the query as an ACCOUNTADMIN.
What agent version is running?
You may need to know what version of the agent you are running, for example to pass diagnostic information to Matillion Support. To determine the agent version:
- Open the app.
- Click the Privileges tab.
- This tab displays two numbers separated by a dash. The agent version is the second number, after the dash. For example, if the tab displays
1.0.20-10.983.0
then the agent version is10.983.0
.
Some pipelines aren't running
If the agent is started and running correctly but some of your Data Productivity Cloud pipelines fail to run, the issue may be with specific components in those pipelines that need to communicate on non-standard ports.
To resolve this issue, you will need to open additonal ports, as described below.
How to open more ports
To open up additional ports, you will need to alter the network rule created by the application, which by default only allows access to ports 80
and 443
. You must make these changes using the same role that installed the application.
The network rule created by the application will follow this naming convention:
<APPLICATION_NAME>_APP_DATA.CONFIGURATION.<APPLICATION_NAME>_ALL_EXTERNAL_ACCESS_NETWORK_RULE
The default <APPLICATION_NAME>
is MATILLION_DATA_PRODUCTIVITY_CLOUD
which means the network rule will be:
MATILLION_DATA_PRODUCTIVITY_CLOUD_APP_DATA.CONFIGURATION.MATILLION_DATA_PRODUCTIVITY_CLOUD_ALL_EXTERNAL_ACCESS_NETWORK_RULE
Login to Snowsight and use the role created for the native application. Note that if this role is not assigned to a user, you may need to complete this action by running the following:
GRANT ROLE <ROLE_NAME> TO USER "<USER_NAME>";
After assuming the role, run the following query to update the network rule:
ALTER NETWORK RULE MATILLION_DATA_PRODUCTIVITY_CLOUD_APP_DATA.CONFIGURATION.MATILLION_DATA_PRODUCTIVITY_CLOUD_ALL_EXTERNAL_ACCESS_NETWORK_RULE
SET VALUE_LIST = (
'0.0.0.0:443', -- these existing values should not be changed
'0.0.0.0:80', -- these existing values should not be changed
'<SOME_HOST>:<SOME_PORT>');
Where <SOME_HOST>:<SOME_PORT>
are the new host IP address and network port that you want to open. To open multiple ports, supply a comma-separated list of values in the query.
The rule update is applied immediately, and any pipeline component requiring the bespoke host:port
combination should now start working.
Warning
The following ports are currently not supported:
20
(FTP)465
(SMTP)445
(SMB)