v0.17.0: Snapshots, share with cloud, workspace profiles →
Community

Contributor Spotlight: Graza Andersson

He led his firm's adoption of Steampipe, and contributed a number of Steampipe plugins.

Jon Udell
5 min. read - September 28, 2022

Graza Andersson is a platform engineer with the APS Group. He's the author of four of the five Steampipe plugins contributed by APS, and is one of the most active and helpful members of the Steampipe community. ​

Early days

​ APS Group, a marketing communications firm, were looking for a single interface to their diverse IT assets: VMs running on premise as well as in AWS, source code in GitLab, secrets in Hashicorp Vault, and more. The ops team first considered writing scripts to pull data from various APIs into a graph database, then discovered Steampipe on Hacker News. It looked like the do-everything tool they hoped for. "The ecosystem that was already in place looked good," says Graza. Plugins for AWS, Azure, and CloudFlare were already available in the Steampipe Hub, and the APS Group were early adopters of the Kubernetes plugin that hadn't yet been published.

But the team would need new plugins to achieve the desired single interface. So they spun up a proof-of-concept that became the Hashicorp Vault plugin which queries secret keys (not values) in vault engines.

It was their first foray into golang programming. They looked at some existing plugins, realized it would be simple to make one. They built the Hashicorp Vault plugin and published it in May 2021. Then came GitLab (May 2021), vSphere (August 2021), Keycloak (November 2021), and most recently FreshService which began in March 2022 and was published (with 38 tables!) last month.

Steampipe was a big hit the data team. "They use SQL day in and day out," says Graza, "and now they can write their own queries to pull data from everywhere." ​

FreshService

​ The APS Group use FreshDesk for customer support, FreshService for IT ticketing, and FreshStatus to communicate with customers about status and incidents. Each of these services presents a different API, but the FreshService plugin was their priority. They also use FreshPing for website uptime monitoring. As it turns out, François de Metz has built a plugin for that service. "The work he's done on FreshPing is good," says Graza. "I see he had to write his own SDK [API wrapper], and we'll probably end up using it."

Working with the Fresh APIs was challenging, he says, and the friendly, helpful, and responsive Steampipe community was a nice contrast. "Developers, maintainers, and even the CEO are all more than willing to dive into any issue or problem." The reason the APS Group are happy to publish and share their plugins, he says, is exactly that willingness to provide support and assistance. And he returns the favor. Members of Steampipe's Slack community know that Graza is often the first to respond when newcomers raise questions about the Steampipe core, plugins, or mods. ​​

On dashboards

​ The APS Group use Metabase, as well as Prometheus/Grafana, to visualize data. These tools, like all Postgres-compatible tools, can connect to Steampipe and benefit from Steampipe's superpowers.

Steampipe's dashboards-as-code approach was a pleasant surprise. "Dashboards weren't a feature I expected to appear in the tool," he says, "but when they did I could see how useful they would be, and clearly lots of people love them." He is exploring possible use cases. ​

Final thoughts

​ Another tool that Graza loves is jq which reads JSON, slices and dices, and emits altered JSON. Steampipe is like jq on steroids, he says. "It's read-only, get anything you need, then smash it all together. And Steampipe does that really well. You can use your imagination to wire up data sources on the backend, then explore them with SQL queries."

Thanks so much, Graza, for expanding Steampipe's API coverage and for the generous help you give to others.

For anyone interested in developing Steampipe plugins, please check out the docs and bring your questions and comments to our friendly Slack community.