Pmm-agent - Can't extract table names from query insert into. Too long query in pg_stat_statements results in errors in log

Hello there.

Since few weeks I’m using PMM to monitor PostgreSQL clusters on test environment. I’ve noticed that pmm-agent on some of the PostgreSQL clusters overflowing the log file on the virtual machine (/var/logs/messages). This is caused by an error when trying to parse results from pg_stat_statements, or more precisely, it happens with long queries. For example:

May  8 07:53:00 testvm1-accept.postgresql.dc0 pmm-agent[2861835]: time="2025-05-08T07:53:00.391+02:00" level=warning msg="Can't extract table names from query insert into \"documents_to_insert\" (\"document\", \"type\") values ($1, $2), ($3, $4), ($5, $6), ($7, $8), ($9, $10), ($11, $12), ($13, $14), ($15, $16), ($17, $18), ($19, $20), ($21, $22), ($23, $24), ($25, $26), ($27, $28), ($29, $30), ($31, $32), ($33, $34), ($35, $36), ($37, $38), ($39, $40), ($41, $42), ($43, $44), ($45, $46), ($47, $48), ($49, $50), ($51, $52), ($53, $54), ($55, $56), ($57, $58), ($59, $60), ($61, $62), ($63, $64), ($65, $66), ($67, $68), ($69, $70), ($71, $72), ($73, $74), ($75, $76), ($77, $78), ($79, $80), ($81, $82), ($83, $84), ($85, $86), ($87, $88), ($89, $90), ($91, $92), ($93, $94), ($95, $96), ($97, $98), ($99, $100), ($101, $102), ($103, $104), ($105, $106), ($107, $108), ($109, $110), ($111, $112), ($113, $114), ($115, $116), ($117, $118), ($119, $120), ($121, $122), ($123, $124), ($125, $126), ($127, $128), ($129, $130), ($131, $132), ($133, $134), ($135, $136), ($137, $138), ($139, $140), ($141, $142), ($143, $144), ($145, $146), ($147, $148), ($149, $150), ($151, $152), ($153, $154), ($155, $156), ($157, $158), ($159, $160), ($161, $162), ($163, $164), ($165, $166), ($167, $168), ($169, $170), ($171, $172), ($173, $174), ($175, $176), ($177, $178), ($179, $180), ($181, $182), ($183, $184), ($185, $186), ($187, $188), ($189, $190), ($191, $192), ($193, $194), ($195, $196), ($197, $198), ($199, $200), ($201, $202), ($203, $204), ($205, $206), ($207, $208), ($209, $210), ($211, $212), ($213, $214), ($215, $216), ($217, $218), ($219, $220), ($221, $222), ($223, $224), ($225, $226), ($227, $228), ($229, $230), ($231, $232), ($233, $234), ($235, $236), ($237, $238), ($239, $240), ($241, $242), ($243, $244), ($245, $246), ($247, $248), ($249, $250), ($251, $252), ($253, $254), ($255, $256), ($257, $258), ($259, $260), ($261, $262), ($263, $264), ($265, $266), ($267, $268), ($269, $270), ($271, $272), ($273, $274), ($275, $276), ($277, $278), ($279, $280), ($281, $282), ($283, $284), ($285, $286), ($287, $288), ($289, $290), ($291, $292), ($293, $294), ($295, $296), ($297, $298), ($29 ...: error on parsing sql query: syntax error at or near \"..\"" agentID=aaa33e1d-15d8-46f3-bfc5-64a89f63c2a2 component=agent-builtin type=agent_type_qan_postgresql_pgstatements_agent

The same query is fully visible in pg_stat_statements - the query have 1656 parameters, so the last characters in query is like

... ($1651, $1652), ($1653, $1654), ($1655, $1656)

What can I do to prevent this? Is this should be consider as a bug or should I change the pmm-agent configuration so that it can read the entire query from pg_stat_statements?

I won’t deny that this is a problem that is stopping from implementing PMM on production clusters. There I can’t afford to have the /var/log directory regularly overflowed by unnecessary logs

Hi, can you try increasing the max-query-length parameter for the PostgreSQL service? The default is 2048 so that could explain the truncation.

Sure, I can try it. Just one question - do I have to remove and add PostgreSQL service once again or I can change max-query-length parameter in gui or somewhere else?

Unfortunately, you’ll need to remove the service and add it again.

1 Like