Support Questions

Find answers, ask questions, and share your expertise
Announcements
Celebrating as our community reaches 100,000 members! Thank you!

why is stellar returning empty profile values?

avatar
Contributor

I created a squid telemetry following https://cwiki.apache.org/confluence/display/METRON/Profiling+Your+Streams

I created 2 profiles

{
"profiles": [
{
"profile": "squid-miss",
"foreach": "ip_src_addr",
"onlyif": "source.type == 'squid' and action == 'TCP_MISS'",
"update": { "m": "STATS_ADD(m, 1)" },
"result": "m"
},
{
"profile": "url-length",
"foreach": "ip_src_addr",
"onlyif": "source.type == 'squid'",
"update": { "m": "STATS_ADD(m, LENGTH(url))" },
"result": "m"
}
]
}

I can see the profile values when I scan hbase. However when I run

p.p1 {margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Menlo; color: #000000; background-color: #ffffff} span.s1 {font-variant-ligatures: no-common-ligatures}

PROFILE_GET("url-length", "127.0.0.1", PROFILE_FIXED(5,"HOURS"))

I get an empty result. This is tru for both the profiles and all time windows. There is no other error. How can I get profile values using stellar?

1 ACCEPTED SOLUTION

avatar
Expert Contributor

Did you change the profile duration of the Profiler? By default, it is 15 minutes, but in the link that you sent it tells you to change the duration to 1 minute. I would guess that your Profiler configuration probably looks like this.

profiler.period.duration=1 
profiler.period.duration.units=MINUTES

If so, you also need to change the profiler duration on the client side to match. You can do this in a couple different ways. For example, change the client-side equivalent settings in global settings first, then fetch the data.

%define profiler.client.period.duration := "1"
%define profiler.client.period.duration.units := "MINUTES"
PROFILE_GET("url-length", "127.0.0.1", PROFILE_FIXED(5,"HOURS"))

Or simply override those values when fetching the data.

PROFILE_GET("url-length", "127.0.0.1", PROFILE_FIXED(5,"HOURS", {'profiler.client.period.duration' : '1', 'profiler.client.period.duration.units' : 'MINUTES'})

View solution in original post

3 REPLIES 3

avatar
Expert Contributor

Did you change the profile duration of the Profiler? By default, it is 15 minutes, but in the link that you sent it tells you to change the duration to 1 minute. I would guess that your Profiler configuration probably looks like this.

profiler.period.duration=1 
profiler.period.duration.units=MINUTES

If so, you also need to change the profiler duration on the client side to match. You can do this in a couple different ways. For example, change the client-side equivalent settings in global settings first, then fetch the data.

%define profiler.client.period.duration := "1"
%define profiler.client.period.duration.units := "MINUTES"
PROFILE_GET("url-length", "127.0.0.1", PROFILE_FIXED(5,"HOURS"))

Or simply override those values when fetching the data.

PROFILE_GET("url-length", "127.0.0.1", PROFILE_FIXED(5,"HOURS", {'profiler.client.period.duration' : '1', 'profiler.client.period.duration.units' : 'MINUTES'})

avatar
Contributor

this works. Thanks a lot. I have spent hours trying to figure out why the profile is in hbase but not showing up in stellar.

avatar
Expert Contributor

Sorry about the pain. Feel free to share comments and suggestions as you use the tool.