I used an OWL Home Energy Monitor system with a USB receiver to display and log power usage for a few years but in 2011 I built my own energy monitor system based on the early OpenEnergyMonitor project design, this uses a CT sensor to measure the current which is connected to a Ciseco Xino (Arduino clone) with an RFM12B radio. You can read more about that in this blog post. The OpenEnergyMonitor project has come a huge way since then with many off the shelf solutions available to reproduce this.
The transmissions are received by the Tiny328 connected to my Debian server and fed into Node-RED for distribution via MQTT and into an InfluxDB database for logging. I use Grafana for producing dashboards and graphs from this data. Previously I have used a self hosted installation of Emoncms for logging and graphing.
Monitoring of gas usage is done with A3214 hall effect sensor connected to one of my TinyTX boards running this code, my gas meter is an Elster BK-G4 which has a pulse magnet inside that pulses once every 0.01 m3 of gas which makes things nice and easy. As with the Electricity monitoring this goes into Node-RED and InfluxDB.