Here is the excerpt of the code:

It is a thinclient. Since I use this also to benchmark with millions of 
entries, I keep committing after a batch of rows, which is why there is a 
commit in the loop.

final String tblName = "PersonSQL";

        final String schName = "\"PersonSQL\"";
        final String scanCacheName = "PersonSCN";
        final String sqlCacheName = 
"com.futurewei.sfqx.SqlFieldQueryXML.PersonSQL";
...
        try {
            // SQL Version:
            ClientCache<String, PersonSQL> personSQLCache = 
client.cache(sqlCacheName);

...
            PersonSQL[] samplePers = new PersonSQL[numEntries];
            long[] qryTimes = new long[sample];
            long[] resCount = new long[sample];
            ClientTransaction ttxn = null;
            Boolean noTxn = true;
            int i, j = 0;
            if (doPopulate) {
                long popStart = System.nanoTime();
                for (i = 0; i < numEntries; ++i) {
                    try {
                        if (noTxn) {
                            ttxn = client.transactions().txStart();
                            noTxn = false;
                        }
                        PersonSQL person = createPerson(rnd);
                        personSQLCache.put(person.getSsn(), person);

                   ...
                        if ((i % sample) == 0) {
                            samplePers[j++] = person;
                            ttxn.commit();
                            noTxn = true;
                        }
                    } catch (Exception e) {
                        System.out.println("Failed to add entries to 
PersonCache" + e.getMessage());
                        ttxn.rollback();
                        throw e;
                    }
                }



---------------------
Regards,
Prasad Kommoju

From: Stephen Darlington <stephen.darling...@gridgain.com>
Sent: Tuesday, October 26, 2021 1:42 AM
To: user@ignite.apache.org
Subject: Re: Ignite 2.8.1 - JMX scrape failed: 
java.lang.IllegalArgumentException

Why not switch to the OpenCensus exporter for Ignite?

https://ignite.apache.org/docs/latest/monitoring-metrics/new-metrics-system#opencensus<https://nam11.safelinks.protection.outlook.com/?url=https%3A%2F%2Fignite.apache.org%2Fdocs%2Flatest%2Fmonitoring-metrics%2Fnew-metrics-system%23opencensus&data=04%7C01%7Cpkommoju%40futurewei.com%7C25635cbc24554b6c872108d9985c8689%7C0fee8ff2a3b240189c753a1d5591fedc%7C1%7C0%7C637708345441910602%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&sdata=b9Ezq3Ttm%2FrCmIoplIg1t8SoJJ3gLA4yJqu7OE7czQc%3D&reserved=0>

For the JMX exporter, there appears to be a blacklistObjectNames you can use to 
exclude certain metrics.

Regards,
Stephen


On 25 Oct 2021, at 18:44, Devin Bost 
<devin.b...@gmail.com<mailto:devin.b...@gmail.com>> wrote:

Hi,

I noticed that we're getting a flood of these exceptions, and it looks like 
Ignite 2.8.1 claimed to fix the issue. However, we are running 2.8.1, and we're 
still seeing the issue.

It looks to be the same issue that was discussed here: 
https://github.com/prometheus/jmx_exporter/issues/501<https://nam11.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fprometheus%2Fjmx_exporter%2Fissues%2F501&data=04%7C01%7Cpkommoju%40futurewei.com%7C25635cbc24554b6c872108d9985c8689%7C0fee8ff2a3b240189c753a1d5591fedc%7C1%7C0%7C637708345441920560%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&sdata=Rl%2FyNpWpMnqrCfQZy6eXu1SxnB%2FS9kcUGndWslr5D1o%3D&reserved=0>
and it appears to be related to this issue as well: 
https://github.com/prometheus/jmx_exporter/issues/483<https://nam11.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fprometheus%2Fjmx_exporter%2Fissues%2F483&data=04%7C01%7Cpkommoju%40futurewei.com%7C25635cbc24554b6c872108d9985c8689%7C0fee8ff2a3b240189c753a1d5591fedc%7C1%7C0%7C637708345441920560%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&sdata=IzOGC7Mql08DrUxFCKJZsOxGMFUvjEqDiBCTQrhdbaw%3D&reserved=0>

Here's the stack trace:

Oct 25, 2021 5:40:37 PM io.prometheus.jmx.JmxCollector collect
SEVERE: JMX scrape failed: java.lang.IllegalArgumentException: Not an 
Attribute: 
javax.management.openmbean.TabularDataSupport(tabularType=javax.management.openmbean.TabularType(name=org.apache.ignite.spi.systemview.view.ComputeJobView,rowType=javax.management.openmbean.CompositeType(name=org.apache.ignite.spi.systemview.view.ComputeJobView,items=((itemName=affinityCacheIds,itemType=javax.management.openmbean.SimpleType(name=java.lang.String)),(itemName=affinityPartitionId,itemType=javax.management.openmbean.SimpleType(name=java.lang.Integer)),(itemName=createTime,itemType=javax.management.openmbean.SimpleType(name=java.lang.Long)),(itemName=executorName,itemType=javax.management.openmbean.SimpleType(name=java.lang.String)),(itemName=finishTime,itemType=javax.management.openmbean.SimpleType(name=java.lang.Long)),(itemName=id,itemType=javax.management.openmbean.SimpleType(name=java.lang.String)),(itemName=isFinishing,itemType=javax.management.openmbean.SimpleType(name=java.lang.Boolean)),(itemName=isInternal,itemType=javax.management.openmbean.SimpleType(name=java.lang.Boolean)),(itemName=isStarted,itemType=javax.management.openmbean.SimpleType(name=java.lang.Boolean)),(itemName=isTimedOut,itemType=javax.management.openmbean.SimpleType(name=java.lang.Boolean)),(itemName=originNodeId,itemType=javax.management.openmbean.SimpleType(name=java.lang.String)),(itemName=sessionId,itemType=javax.management.openmbean.SimpleType(name=java.lang.String)),(itemName=startTime,itemType=javax.management.openmbean.SimpleType(name=java.lang.Long)),(itemName=state,itemType=javax.management.openmbean.SimpleType(name=java.lang.String)),(itemName=systemViewRowId,itemType=javax.management.openmbean.SimpleType(name=java.lang.Integer)),(itemName=taskClassName,itemType=javax.management.openmbean.SimpleType(name=java.lang.String)),(itemName=taskName,itemType=javax.management.openmbean.SimpleType(name=java.lang.String)))),indexNames=(systemViewRowId)),contents={})
at java.management/javax.management.AttributeList.adding(AttributeList.java:328)
at java.management/javax.management.AttributeList.adding(AttributeList.java:335)
at java.management/javax.management.AttributeList.asList(AttributeList.java:165)
at io.prometheus.jmx.JmxScraper.scrapeBean(JmxScraper.java:160)
at io.prometheus.jmx.JmxScraper.doScrape(JmxScraper.java:117)
at io.prometheus.jmx.JmxCollector.collect(JmxCollector.java:542)
at 
io.prometheus.client.CollectorRegistry$MetricFamilySamplesEnumeration.findNextElement(CollectorRegistry.java:183)
at 
io.prometheus.client.CollectorRegistry$MetricFamilySamplesEnumeration.nextElement(CollectorRegistry.java:216)
at 
io.prometheus.client.CollectorRegistry$MetricFamilySamplesEnumeration.nextElement(CollectorRegistry.java:137)
at io.prometheus.client.exporter.common.TextFormat.write004(TextFormat.java:22)
at 
io.prometheus.client.exporter.HTTPServer$HTTPMetricHandler.handle(HTTPServer.java:59)
at jdk.httpserver/com.sun.net.httpserver.Filter$Chain.doFilter(Filter.java:77)
at jdk.httpserver/sun.net.httpserver.AuthFilter.doFilter(AuthFilter.java:82)
at jdk.httpserver/com.sun.net.httpserver.Filter$Chain.doFilter(Filter.java:80)
at 
jdk.httpserver/sun.net.httpserver.ServerImpl$Exchange$LinkHandler.handle(ServerImpl.java:692)
at jdk.httpserver/com.sun.net.httpserver.Filter$Chain.doFilter(Filter.java:77)
at 
jdk.httpserver/sun.net.httpserver.ServerImpl$Exchange.run(ServerImpl.java:664)
at 
java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
at 
java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
at java.base/java.lang.Thread.run(Thread.java:829)

How do we resolve this exception?

Devin G. Bost

Reply via email to