All Posts

"Wavefront Live Demo - Get trained by an SE for free!" This is a monthly webinar series with the next webinar occurring on Apr 17, 2018 10:00 AM Pacific Time vmware.zoom.us/...dQneJ34MrsDwlPg ... See more...
"Wavefront Live Demo - Get trained by an SE for free!" This is a monthly webinar series with the next webinar occurring on Apr 17, 2018 10:00 AM Pacific Time vmware.zoom.us/...dQneJ34MrsDwlPg Webinars are on the 3rd Tuesday of every month!
If you go to www.wavefront.com/join-public-slack it should let you self register. Please let me know if that doesn't work!
How do i get access to the public wavefront slack community? Slack Site Says: Contact the workspace administrator for an invitation.
Hi misanuk​ Thanks for your question. This isn't currently possible but we can certainly see how that would be useful and have an open feature request to improve the behavior there. Kind regar... See more...
Hi misanuk​ Thanks for your question. This isn't currently possible but we can certainly see how that would be useful and have an open feature request to improve the behavior there. Kind regards, Conor
For a Wavefront Stacked Area Chart, I would like to specify a fixed order of the series. i.e. so a particular series always shows up on top vs. on bottom. Is this possible? Currently, the orde... See more...
For a Wavefront Stacked Area Chart, I would like to specify a fixed order of the series. i.e. so a particular series always shows up on top vs. on bottom. Is this possible? Currently, the ordering appears semi-random. Or at least I cannot discern a clear pattern
Hi Billrothjr, Here is my alert query: (ts(ops.infrastructure.df.*.df_complex.used, env=prod-*) / (ts(ops.infrastructure.df.*.df_complex.used, env=prod-*) + ts(ops.infrastructure.df.*.df_compl... See more...
Hi Billrothjr, Here is my alert query: (ts(ops.infrastructure.df.*.df_complex.used, env=prod-*) / (ts(ops.infrastructure.df.*.df_complex.used, env=prod-*) + ts(ops.infrastructure.df.*.df_complex.free, env=prod-*))) > 0.97 . I have attached the screenshot of the alert firing. Please let me know if you need anything else.
Actually, its pretty simple. Check out how durren​ did it in the code, here: GitHub - BillRothVMware/wavefront-weather-py thanks
Can you post your alert query and a screen shot of it? Also, make sure you don't have bad data or a query error. Watch for misplaced *s.
We've set up an alert to fire if disk space usage is greater than 97%. However, yesterday, this alert fired despite the disk space usage being around 31% as can be seen from the chart in the aler... See more...
We've set up an alert to fire if disk space usage is greater than 97%. However, yesterday, this alert fired despite the disk space usage being around 31% as can be seen from the chart in the alert. Only a single node was affected.
Here’s a quick post about the latest integrations with Wavefront. In the past, we’ve done Tesla and Nest integrations, but Durren Shen recently posted a blog about integrating Wavefront with an A... See more...
Here’s a quick post about the latest integrations with Wavefront. In the past, we’ve done Tesla and Nest integrations, but Durren Shen recently posted a blog about integrating Wavefront with an Ambient Weather weather station and WUnderground, the crowd sourced weather site. (The API info is here.) Durren’s post is here. (Follow him here.) He also talked about code as well. I have cleaned it up and posted it to the GitHub repo here. To be clear, Durren (AKA durren ) wrote the code, I just cleaned it up. The code is essentially this: # Pulling data from WUnderground and sending to Wavefront by Python # # Core original code written by Durren Shen @durrenshen # in a blog at https://www.wavefront.com/weather-metrics/ # # Cleaned up by Bill Roth @BillRothVMware # import urllib2 import json import logging import socket import sys import time import re import syslog sock = socket.socket() # # Below assumes the proxy is running on the same system. YMMV # sock.connect(('127.0.0.1', 2878)) # # Set the source to yours. # sourceName = 'BrothPWS' # # Add your key here. You can get an API key here: https://www.wunderground.com/weather/api/ # Also change KCASANJO821.json to your station. Or you can use this one. # f = urllib2.urlopen('http://api.wunderground.com/api/Y/conditions/q/pws:KCASANJO821.json') json_string = f.read() parsed_json = json.loads(json_string) temp_f = parsed_json['current_observation']['temp_f'] sock.sendall('weather.temp_f ' + str(temp_f) + ' source=' + sourceName + ' \n') humidity = parsed_json['current_observation']['relative_humidity'] sock.sendall('weather.humidity ' + re.sub("[^0-9]", "", str((humidity))) + ' source=' + sourceName + ' \n') wind_degrees = parsed_json['current_observation']['wind_degrees'] sock.sendall('weather.wind_degrees ' + str(wind_degrees) + ' source=' + sourceName + ' \n') wind_mph = parsed_json['current_observation']['wind_mph'] sock.sendall('weather.wind_mph ' + str(wind_mph) + ' source=' + sourceName + ' \n') wind_gust_mph = parsed_json['current_observation']['wind_gust_mph'] sock.sendall('weather.wind_gust_mph ' + str(wind_gust_mph) + ' source=' + sourceName + ' \n') pressure_in = parsed_json['current_observation']['pressure_in'] sock.sendall('weather.pressure_in ' + str(pressure_in) + ' source=' + sourceName + ' \n') pressure_trend = parsed_json['current_observation']['pressure_trend'] sock.sendall('weather.pressure_trend ' + str(pressure_trend) + ' source=' + sourceName + ' \n') dewpoint_f = parsed_json['current_observation']['dewpoint_f'] sock.sendall('weather.dewpoint_f ' + str(dewpoint_f) + ' source=' + sourceName + ' \n') feelslike_f = parsed_json['current_observation']['feelslike_f'] sock.sendall('weather.feelslike_f ' + str(feelslike_f) + ' source=' + sourceName + ' \n') visibility_mi = parsed_json['current_observation']['visibility_mi'] sock.sendall('weather.visibility_mi ' + str(visibility_mi) + ' source=' + sourceName + ' \n') solarradiation = parsed_json['current_observation']['solarradiation'] sock.sendall('weather.solarradiation ' + str(solarradiation) + ' source=' + sourceName + ' \n') UV = parsed_json['current_observation']['UV'] sock.sendall('weather.UV ' + str(UV) + ' source=' + sourceName + ' \n') precip_1hr_in = parsed_json['current_observation']['precip_1hr_in'] sock.sendall('weather.precip_1hr_in ' + str(precip_1hr_in) + ' source=' + sourceName + ' \n') precip_today_in = parsed_json['current_observation']['precip_today_in'] sock.sendall('weather.precip_today_in ' + str(precip_today_in) + ' source=' + sourceName + ' \n') observation_epoch = parsed_json['current_observation']['observation_epoch'] syslog.syslog('Weather logged at ' + str(observation_epoch)); f.close() sock.close() It can produce a dashboard like this: To try out Wavefront, Check out Wavefront.com.
:smileycheck::smileycheck::smileycheck: ^ The Katie Bradley stamp of approval, this absolutely rocks.
I am posting a short article here since I do not time for a long one. In short, as part of my job, I need to watch our web site. I want to get all our marketing data into Wavefront so we can s... See more...
I am posting a short article here since I do not time for a long one. In short, as part of my job, I need to watch our web site. I want to get all our marketing data into Wavefront so we can see it. So 2 questions come up: How do I pull data from Google Analytics How do I send that data to Wavefront in PHP(which I assume would be easy, and was). I took the code for this from:  https://developers.google.com/analytics/devguides/reporting/core/v4/quickstart/service-php The GITHub repo is here: GitHub - BillRothVMware/wavefront-web-analytics-php Setup The code is not pretty. You are warned. To this this up, you'll need the PHP file and: 1. You'll need to get the composer stuff mentioned above: composer require google/apiclient:^2.0 2. You'll need to get the service credential file. See google web page above for instructions Deployment Deployment is a little funky. You have to do the following: 1. Make sure you get app the composer files 2. Move the service*.json to the directory for the php file 3. Move the "vendor" directory to the directory where the php file exists Sending Data The basic sending of data is pretty simple. See below. function sendWavefront($metric, $value, $ts, $tags, $source) {         global $logging;         $address = <MACHINE WITH PROXY>;     $service_port = 2878; // WF proxy port.         /* Create a TCP/IP socket. */     $socket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);     if ($socket === false) {         echo "socket_create() failed: reason: " . socket_strerror(socket_last_error()) . "\n";         return;     } else {         //     }     $result = socket_connect($socket, $address, $service_port);     if ($result === false) {         echo "socket_connect() failed.\nReason: ($result) " . socket_strerror(socket_last_error($socket)) . "\n";         return;     } else {         //     }     $str = $metric . " " . $value . " " . $ts . " " . $tags . " source=" . $source . "\n";         if($logging)         syslog(LOG_INFO,$str);     socket_write($socket, $str, strlen($str));     socket_close($socket);     } KTbradley​ and EricNielsen​ FYI. My code still rocks.
Hi Michael, I sincerely apologize for the name mix up, I received a very similar request through a support ticket as well. We worked on it internally, treating this with highest priority. ... See more...
Hi Michael, I sincerely apologize for the name mix up, I received a very similar request through a support ticket as well. We worked on it internally, treating this with highest priority. Thank you for confirming the color scheme is working better for you Please feel free to reach out to us with questions and suggestions for improvements! Kind Regards, Hassan
Hello Hassan, Thanks for your reply, I am glad to see that the color is fixed now. PS. My name is Michael not Pantelis
Hi Pantelis, This is Hassan from Wavefront by VMware. We connected earlier through a support ticket. I really appreciate you providing us more details on this. I have already spoken with mana... See more...
Hi Pantelis, This is Hassan from Wavefront by VMware. We connected earlier through a support ticket. I really appreciate you providing us more details on this. I have already spoken with management and we have brought this up with our product and engineering teams. We are looking into changing the white back ground with light grey just like you have suggested. Thank you! Hassan
Today, the new Clean White UI got published. It is modern but it is not eye-friendly. We need engineer-friendly UI that will help us work fast. The old light-grey background (at White theme),... See more...
Today, the new Clean White UI got published. It is modern but it is not eye-friendly. We need engineer-friendly UI that will help us work fast. The old light-grey background (at White theme), was excellent because: 1) was not burning our eyes 2) was helping to quickly recognize where a box starts and stops The fact that Clean UI's are modern, it doesn't mean that they are engineer-friendly. I hope that you will seriously take care of this issue and fix the UI. PS.1 I have switched to Black theme, which is better than the New-White, but still not good as the Old-White
Do you want the mean, or the median?    You could do a moving median with a sufficiently large windows. See the docs: mmedian(timeWindow, expression) Wavefront Query Language Quick Referenc... See more...
Do you want the mean, or the median?    You could do a moving median with a sufficiently large windows. See the docs: mmedian(timeWindow, expression) Wavefront Query Language Quick Reference | Wavefront
You mat want to flesh out your idea by clicking on "create an idea" to the right, and giving more detail about the context.
Did this get scheduled? Seems like an interesting idea. Needs to be fleshed out, tho'.
I need some help understanding how to use the Single Stat View chart. My goal doesn't seem to be too complex but the Single Stat View is giving me results I don't understand. I want to have... See more...
I need some help understanding how to use the Single Stat View chart. My goal doesn't seem to be too complex but the Single Stat View is giving me results I don't understand. I want to have an average CPU utilization chart. Just showing the average CPU usage during the selected time frame. There is exactly this in one of the example dashboard of the Welcome Tour, using sample data. In below example I'm also working with the sample data and a query very close to the example chart from the Tour. Chart 1: This is a stacked area with a legend, showing mean and median. ts(~sample.cpu.usage.percentage, source=app-5) Chart 2: The Single Stat View avg(ts(~sample.cpu.usage.percentage, source=app-5)) Both charts are summarized by average. Depending on the chosen timeframe, the results vary. Sometimes the calculated average might be about right. On other timeframes the average clearly is off. Here are two examples: The values still are close to the actual average. With our actual data I have seen huge differences. Due to scheduled tasks our CPU usage is flapping between very high and very low values. The calculated average then is more close to the max or min values in some timeframes: I guess what I want is to display the mean value in the Single Stat Chart. How would I do that? Thanks, Daniel