Python ile Storage Kapasite Raporu

Sema Topal
Turk Telekom Bulut Teknolojileri
3 min readFeb 24, 2022

Bu yazımda Python programlama dilini kullanarak yazılım geliştirme sürecinin ayrılmaz bir parçası olan ve günümüzde otomasyon çalışmalarında sıkça kullanılan REST servisinden kapasite bilgilerini elde ederek .csv formatına dönüştürme ve görselleştirme hakkında bilgiler vereceğim.

RESTful API nedir?

API programların birbirleriyle konuşabilmesini sağlayan kurallar dizisidir. Geliştiriciler ilgili Server’ın istemcilerle konuşabilmesine olanak sağlayan API ı yazarlar. REST ise API’ın nasıl görüneceğini, geliştiricilerin API’lerini yazarken uyması gereken kuralları belirler. Örneğin spesifik bir url’e istek gönderdiğinizde size belirli bir veriyi cevap olarak döner. Buradaki url request(istek), sunucunun döndüğü veri ise response(cevap) olarak nitelendirilir.

REST servis yapısı, rest standartlarına uyuyorsa RESTFUL API olarak adlandırılır.

Nasıl çalışır?

Https protokolü ile get, post, put, delete gibi yöntemler kullanılarak belirli url’ler üzerinden sistemlere istek gönderilir ve bu isteklere karşılık html, json, xml,.. gibi farklı formatlarda yanıtlar alınır. Get; veri çekme, Post; veri oluşturma ya da güncelleme, Put; mevcut veriyi değiştirme , güncelleme Delete; veriyi silme amacıyla kullanılır.

Storage Pool bilgilerini içeren örnek URL ve Https İsteği Çıktısı

Yukarıdaki https isteği çıktısında görüldüğü gibi, elde edilen veri çok fazla detay bilgi içerebilir. Genellikle bu çıktıdaki verilerin tamamına ihtiyaç duymayız. Verinin istediğimiz bölümünü alabilmek, üzerindeki ilgili sahaları matematiksel operasyonlarda girdi olarak kullanabilmek ve istediğimiz formatta çıktı oluşturabilmek gibi farklı ihtiyaçlarımız olabilir. Bu gibi operasyonları yapabilmek için bir programlama diline ihtiyaç duyarız.

Python ,açık ve basit yapısı sayesinde Rest API ile iletişim kurmak için ideal programlama dillerindendir. Python içerisinde bulunan hazır modüller işimizi oldukça kolaylaştırır. Her modül içerisinde fonksiyon, sınıf, obje barındırır. Bu fonksiyonları baştan yazmak yerine modüller kullanılarak kod en sade haliyle yazılabilir.

Storage üreticilerinin kendi donanımlarına özel Rest dokümanları vardır. Bu dokümanlar içerisinde ihtiyacımız olan veriyi hangi URL ‘e istek göndererek sağlayabileceğimiz belirtilir.

Requests modülüyle https isteklerini gerçekleştiririz.

Sector cinsinden elde ettiğimiz kapasite bilgilerini kod içerisinde matematiksel hesaplar yaparak TB cinsine çevirebiliriz.

Hazır modüllerden biri olan pandas ile excel, json, csv gibi farklı türlerdeki veriyi okuyabiliriz. Json formatında elde ettiğimiz kapasite verisini csv formatına dönüştürebiliriz.

Aşağıda belirlediğimiz detaylı kapasite bilgilerini, oluşturacağımız mysql ,postgresql vb. bir veritabanına tablo oluşturarak insert edebilir, bu sayede verileri Grafana gibi web uygulamalarında görselleştirebiliriz.

DeviceID
Total Capacity
Free Capacity
Used Capacity
Lun Total Capacity
Subscribed Capacity
Total Effective Capacity
Used Effective Capacity
Free Effective Capacity
Thin Provision Saving(%)
Used Capacity Percent(%)
Data Reduction Ratio

Kaynaklar:
https://www.python.org/
https://pypi.org/project/pandas/
https://pypi.org/
https://support.huawei.com/enterprise/tr/doc/EDOC1100144155/f5087536/restful-apis

--

--