This post has already been read 28042 times!
So, a long time ago I released a monitoring platform for Citrix XenApp 6.5 and have been using it where I work for some time. The idea was to provide a high level view of your estate and give you the option to get on top of issues before they happen in your environment.
As Citrix moved onto XenDesktop and FMA this platform had to change – I wrote a new version of the software to cater for XenDesktop 7.x and released version 1 of that a while back. Since then things have kind of exploded.
Here was my issue
“Whilst I love to write code and give something back to the Citrix Community it was becoming tough to keep up with my family, my job, my community commitments and this project”
I thought about this for a while and decided to open the project up to some of the people who had helped out with code in the past and try to move this on to something that the wider community could use and enhance.
The idea has always been the same and we kind of have a group mission statement now
“Provide an agent less high level overview of your EUC Platform and take out the need for those daily checks you run to ensure things are running ‘properly’ “
This has driven how we decided to develop the platform and also keeps it simple. I have always said before that we are not out to compete with ControlUp or others similar we are simply just trying to compliment what they offer.
How did I achieve offering this to the community to help enhance? Really with 2 things:
Slack I was ok with as I use it loads through the Citrix CTP and Nutanix NTC Program however GitHub was new to me. I copied the code up there and we got started (Thanks to Ryan and Aaron Parker for schooling us all on GitHub here). Now – at this point I would like to mention some of the people who have had a big involvement in this project and getting it to where it is today.
- Myself @dbretty
- James Kindon @james_kindon
- Ryan Butler @ryan_c_butler
- David Wilkinson @WilkyIT
- Adam Yarborough @littletoyrobots
- Aaron Parker @stealthpuppy
- Hal Lange @hal_lange
- Ryan Revord @rsrevord
Without the help of these community legends this would not be anywhere close to where it is today. They have helped with GitHub, the design, code, teaching each other how to be better coders (Thanks Ryan and Adam!) and generally just been nice blokes.
So, onto the meat of it. VERSION 2.
We decided to rewrite the way it worked. This meant migrating all the code into a version 2 branch and getting it working in there. Some of the reasons for this were to make it more portable, to allow 4 versions of the output (more on this later) and to allow people to use the output to create their own graphs and dashboards.
What Does It Look Like?
The HTML Rendered Dashboard
The Grafana Dashboard (One of them)
How Do You Get It?
Thats the easy part. you have 2 options here:
- Microsoft PSGallery
Just head over to https://github.com/dbretty/EUCMonitoring and from there you can find all the code and instructions on how to install it. Simple eh!
Also listed on the GitHub pages but if you prefer you can just open PowerShell as an Administrator and type in the following:
Thats it! You will then have the scripts ready to run in your environment.
There is a README.MD file on the GitHub page that will give you all the instructions on how to configure it for your environment. I have to say – it is really simple and fast to get up and running.
How Can You Help?
Have some scripts you run and want to include them?
Can think of a better way to do something?
Just want to get involved in the awesome Citrix Community?
A Special Thanks
Have to call out Adam for all the effort he has put in on this.
This by no means retracts from what all the others have done as they have also contributed LOADS but Adam has been a trojan on this beta.
He is like a code junky and once he makes a promise (even a drunk one at Synergy) he certainly delivers on it. Here is his take on it all.
I found out about the project through google searches and social media. I was looking for something to round out the monitoring scripts scripts I wrote by leaning on some of the community examples. In fact, I’m fairly sure I just googled “Citrix monitoring free” and a page on your blog was the fourth on the front page. I believe Stalhood retweeted it, and I had just opened a twitter account after years of avoiding it.
I couldn’t get it to work. We emailed back and forth, and you helped me get it up and running.
I think I had figured out how to run some of the environment checks for things like catalogs, delivery groups, and use them in my own scripts, so I emailed them to you in case you found them useful. More back and forth and in two days I’m invited into the Slack channel.
You soon decided to host it on github instead of the private download links via email, and make it more community driven, which I thought was great. I’ve been wanting to contribute back and make something useful, as a way to backdoor into a community of the guys who’s blogs I read when I get stuck. I was encouraged to blog / tweet / participate as well, as it would both get my name out there as well as help others. I still need to get over that hurdle.
A few months later, Synergy cemented it for me. We all talked in the EUCMonitoring Slack, met up in Anaheim, and I was instantly brought in. I’d get tips on how to spot / avoid the marketing sessions, get pointed to ones that were going to be good even if the title didn’t immediately grab me, etc. Hung out with Kindon, Wilky, Gareth, George, Ryan B, Ryan R, Hal, Kev and you for a bit (Editors Note: My Bad – was a very busy Synergy for me this year – More beers next time!). All people I hadn’t met before the joining the project. Great times, each and every one of them is super smart.
We were able to brainstorm about what it could look like, what was similar and different between the infrastructure checks you previously had in place, and bounce ideas off each other. Everyone basically wanted the same thing, agent-less and high level overview. After a few cocktails, it was settled and the (very rough) new beta was gonna be on the way after heading back home.
We needed a way that we could easily add new systems, as well as work with the output. The new object model allowed us to take a common output and transform it in new ways. We now have the standard flat webpage, a console view, send to influx, and plans for chat integration.
I think it’s gonna be great when the community plays with it more and shows us where they want to see things going. I mean, that’s how I got involved in this….
Some More Screen Shots
Here are some more screenshots of the various Dashboards that you can use as part of this.
The static HTML dashboard. You don’t need any internet connectivity to use this as the donuts are rendered with HTML only. It will update every time you run the script and display the infrastructure components along the top (as many as you select), the worker status in the middle and the current stats and errors over on the right hand side.
This is the Grafana landing page. It will give you the easiest information to digest. Top Left is Sessions, along with a license limit to compare to if you’ve selected those tests. Right is a very simple machine view. Note that its multi-site and multi-zone. Then some netscaler stats, followed by StopLights for the common series. We may add more to any of these as we choose, and the user can as well as they define their own series to test
.Notice how you can hover over one of the dots and get which target is giving you that value?
Here’s the new session details. It has a little more information and graphs, but again, we’re not really trying to be ControlUp or anything. Still, might be useful for historical reasons later down the line.
Thats it for now – hope you enjoy version 2. Go grab it now!