💻
Cheet Sheets
  • 🦁Başlarken
  • 🟧DevOps Pre-Requisite
    • ❤️Why Linux? | Linux Basics #1
    • 💛Vi Editor | Linux Basics #2
    • 💙Basics Commands | Linux Basics #3
    • 🧡Package Managers | Linux Basics #4
    • 💚Services | Linux Basics #5
    • 💛Networking Basics
    • 🤎DNS Basics
    • 🩶Applications Basics
    • 🟨Java introduction
    • 🟩NodeJS Introduction
    • 🟦Python Introduction
    • 🟪GIT Introduction
    • 🟧Apache Web Server Introduction
    • ⬛Apache Tomcat
    • 🟫Python Flask
    • 🟥Node.js Express App
    • 🟨Databases
    • 🟩MySQL
    • 🟪MongoDB
    • 🟨SSL & TLS
    • 🟦YAML & JSON - JSON Path
    • ⬛Labs Resources
  • 🍎Kubernetes
    • 🍏Kubernetes: Nedir ?
    • 🍒Bileşenler
    • 🍵Kubectl ve Versiyon
    • ❤️Pod
    • 🏷️Label ve Selector
    • 🔎Annotation
    • 📲Namespaces
    • 📦Deployments
    • 🔁ReplicaSet
    • 🔙Rollout & Rollback
    • 🌐Networking - 1
    • 🌏Service
    • 🛠️Liveness Probe & Readiness Probe
    • 🥐Resource Limits
    • 💰Environment Variables
    • 📃Ephemeral Volumes
    • 🔑Secrets
    • 🌂ConfigMap
    • 🖥️Node Affinity
    • 🔌Pod Affinity
    • ✍️Taint and Toleration
    • 🔦DaemonSet
    • 🧀PV/PVC
    • 🌜Storage Class
    • 🗿StatefulSet
    • 🕹️Job & Cronjob
    • 🔐Authentication
    • 📏Role-based access control (RBAC)
    • 🈷️Service Account
    • 📈Ingress
    • 📂ImagePullPolicy & ImageSecret
    • 📖Static Pods
    • 🌐Network Policy
    • 🫐Helm Nedir?
    • 📽️Prometheus Stack - Monitoring
    • 💼EFK Stack - Monitoring
    • 🥳CRD & Operator
  • 🧑‍⚕️GIT & GITHUB
    • 👉Girizgah
    • 🌴Branch
    • 🤝Merge
    • 🤔Conflict - Rebase
    • 🇸🇴Alias
    • 🛑Gitignore
    • 🥢Diff
    • ◀️Checkout
    • 🔦Stash
    • 👉Other
  • ☁️AWS
    • 🪣S3
    • 🚙EC2
    • ⚖️ELB
    • 🤝Auto Scaling
    • 🗄️EFS
    • 🔐VPC
    • 🎆CloudFront
    • ❤️Route53
    • 🦈RDS
    • 🏢ElastiCache
    • 🔭CloudWatch
    • 👀CloudTrail
    • 📃CloudFormation
    • 🔕SNS
    • 📬SQS
    • 🎇SWF
    • 📧SES
    • 📦Kinesis
    • 📐AWSConfig
    • 👩‍🏭OpsWork
    • 🚀Lambda - Api Gateway
    • 📌ECS - EKS
    • 🔑KMS
    • 📂Directory Service
    • 🏐Snowball
    • 💾Storage Gateway
    • 💽Volume Gateway
    • 📼Tape Gateway
    • 🏠Organizations
    • 🔙Backup-Transfer-CloudShell
    • 🆔IAM
    • 📀DataSync
    • 🗃️FSx
    • 🎒Aurora Serverless
    • 🌐Global Accelerator
    • 💪HPC
    • 🎰Outposts
    • 🗼Others
  • 👨‍🔬Ansible
    • 👉Girizhah
    • 📔YAML
    • ⚙️Komponentler
    • 🎒Inventory
    • 🏑ad-hoc
    • ▶️Playbook
  • 👨‍⚕️PROMETHEUS
    • 📈Terminoloji
    • 🦯Ubuntu 20.04 Prometheus Kurulum
    • 🗒️prometheus.yml dosyasına ilk bakış:
    • 🧭promQL up query
    • 📇Exporters
    • 🔦promQL Data Types
    • 🦯Selectors & Matchers
    • 🔢Binary Operators
    • 💀ignoring and on
    • ✍️Aggregation Operators
    • 🧠Functions
    • 🖊️Alıştırma
    • 💻Client Libraries
    • 🐍Examining the data of our Python application
    • 🐐Examining the data of our GO application
    • ⏺️Recording Rules
    • 💡rate functions
    • ⏰Alerting
    • ⌚Alert Routing
    • ⏰Slack integration with Prometheus
    • 🤯PagerDuty integration with Prometheus
    • ◼️BlackBox exporter
    • 📍Push Gateway
    • 🪒Service Discovery
    • 🧊kube cadvisor with external prometheus
    • 👉aws with prometheus
    • ☁️CloudWatch Exporter
    • 👨‍🚒mysql exporter
    • 🛃Custom exporter with Python
    • ⚙️Prometheus with HTTP API
    • 🤖Prometheus Federation For Kubernetes
    • 📺Grafana
    • ⁉️Prometheus: Ne zaman kullanılmalı? Ne zaman kullanılmamalıdır?
  • 🍪Sheets
    • 🛳️Docker Sheets
    • 🐐Kube Sheets
  • 🔢12 Factor APP
    • 🏗️Introduction
    • 1️⃣Codebase
    • 2️⃣Dependencies
    • 3️⃣Concurrency
    • 4️⃣Processes
    • 5️⃣Backing Services
    • 6️⃣Config
    • 7️⃣Build, release, run
    • 8️⃣Port binding
    • 9️⃣Disposability
    • 🔟Dev/prod parity
    • 🕚Logs
    • 🕛Admin processes
  • ☁️Azure 104
    • 👨‍👨‍👧‍👧Azure Active Directory ( Entra ID )
    • 💰Subscriptions
    • 🌎Virtual Network (VNET)
    • 💻Virtual Machines
    • 🧑‍🌾Load Balancing
    • 🥍Network Advanced
    • 🪡Automating Deployment and Configuration
    • 💂Securing Storage
    • 📓Administering Azure Blobs and Azure Files
    • 🔧Managing Storage
    • 🎁App Service
    • 🛳️Azure Container
    • 🥇Backup And Recovery
    • 🪐Network Watcher
    • ⏰Resource Monitoring And Alerts
  • ⛅AZURE 305
    • 🆔identity and access management
    • 💼Desing Azure AD (Entra ID)
    • 👨‍💼Desing for Azure B2B
    • 🛃Desing for Azure B2C
    • 💳Design for MFA and Conditional Access
    • ⛑️Design for Identity Protection
    • 🚶Access Reviews
    • 🚦Managed identity Demostration
    • 🔐Key Vault Demostration
    • 👑Governance hierarchy
    • 💠Design for Management Groups
    • 🔑Desing for Subscriptions
    • 🍇Desing for resource groups
    • 📟Design for resource tags
    • 🚷Azure Policy & RBAC
    • 🫐Desing For Blueprints
    • 🪡Desing for Virtual Networks
    • 🛫Design for on-premises connectivity to Azure
    • 🔽Design for network connectivity
    • 📦Design for application delivery
    • 🥞Design for network security and application protection
    • 📕Choose a compute solution
    • 🌊Design for virtual machines
    • 🔋Azure Batch Demostration
    • 🛰️Design for Azure App Service
    • ⛲Design for Azure Container Instances
    • 🎢Design for Azure Kubernetes Service
    • 📠Azure Functions Demostration
    • 💪Azure Logic Apps Demostration
    • 🧑‍💼Design for data storage
    • 🎞️Design for Azure storage accounts
    • 🌟Choose the storage replication
    • 📹Azure blob storage - Lifecycle & immutable demo
    • 🥌Azure Files Demostration
    • 🕸️Design Azure disks
    • 🦼Design for storage security
    • 🔮Azure Table Storage And Cosmos DB Demostration
    • 🟧Azure SQL Solutions
    • 🎡Azure SQL Database - Purchasing models
    • 🕯️Database availability
    • 📜Data security strategy
    • 🧮Azure SQL Edge
    • 🚲Azure Data Factory
    • 🔅Azure Data Lake Storage
    • 🧘‍♂️Azure Databricks
    • 🎒Azure Synapse Analytics
    • 🅰️Azure Stream Analytics
    • 📼Data flow strategy
    • 🍥Cloud Adoption Framework
    • ☣️Azure Migration Framework
    • 🦿Assessing workloads
    • 🪡Migration tools
    • 🤖Azure Database migration
    • 👥Storage migration
    • 👜Azure Backup
    • ⏲️Azure Blob Backup and Recovery
    • 💈Azure files backup and recovery
    • 🎞️Azure VM backup and recovery
    • 🧺Azure SQL backup and recovery
    • ⏰Azure Site Recovery
    • 📩Differentiate event and message
    • ✈️Azure messaging solutions
    • 🚜Event Hub
    • 🥍Application optimization solution
    • 🎁Application lifecycle
    • 📺Azure Monitor
    • 🅱️Log Analytics
    • 👥Azure workbooks and Insights
    • 🚌Azure Data Explorer
  • Github Actions
    • Github Actions Nedir?
    • Workflow & Schedule Triggers
    • Single and Multiple Events
    • Manuel Events
    • Webhook Events
    • Conditional Keywords For Steps
    • Expressions - 1
    • Expressions - 2
    • Runners
    • Workflow Commands
    • Workflow Context
    • Dependent Jobs
    • Encrypted Secrets
    • Configuration Variables
    • Default & Custom Env Varb
    • Set Env Varb with Workflow Commands
    • Github Token Secret
    • Add Script to workflow
    • Push Package #1
    • Push Package #2 Docker
    • Service Containers
    • Routing workflow to runner
    • CodeQL Step
    • Caching Package and Dependency Files
    • Remove workflow Artifact
    • Workflow Status Badge
    • Env Protection
    • Job Matrix Configuration
    • Disable & Delete Workflows
    • Actions type for Action
    • Inputs and Outputs for actions
    • Action Versions
    • Files and Directories for Actions
    • Exit Codes
    • Reusable Workflow & Reuse Templates for Actions and Workflows
    • Configure Self Hosted Runners for Enterprise
  • Loki
    • What is Loki?
    • Architecture of Loki
    • Install Loki For Ubuntu
    • Install Promtail For Ubuntu
    • Querying Logs
    • Loki in Kubernetes
    • Deploying Loki in Kubernetes
    • Connecting to Grafana
    • Viewing Kubernetes logs
    • Promtail Customize & Pipeline
  • Ansible
    • Ansible Introduction
    • Introduction to Ansible Configuration Files
    • Ansible Inventory
    • Inventory Formats
    • Ansible Variables
    • Variable Types
    • Registering Variables and Variable Precedence
    • Variable Scoping
    • Magic Variables
    • Ansible Facts
    • Ansible Playbooks
    • Verifying Playbooks
    • Ansible lint
    • Ansible Conditionals
    • Ansible Conditionals based on facts, variables, re-use
    • Ansible Loops
    • Ansible Modules
    • Introduction to Ansible Plugins
    • Modules and Plugins Index
    • Introduction to Handlers
    • Ansible Roles
    • Ansible Collections
    • Introduction to Templating
    • Jinja2 Templates for Dynamic Configs
  • 🅰️Ansible Advanced
    • Playbook run options
    • Facts
    • Configuration files
Powered by GitBook
On this page

Was this helpful?

  1. PROMETHEUS

Binary Operators

Prometheus Query Language'deki iki anahtar kelime arasındaki işlemler, PromQL binary operators olarak bilinir. Binary operators, iki değer arasında işlem yapmak için kullanılır ve sonucu bir skaler değere dönüştürür.

Binary operators, birden fazla metrik arasında işlem yapmak veya verileri karşılaştırmak için kullanılır ve PromQL'de sıklıkla kullanılır.

Binary Operators;

  • Arithmetic binary operator

  • Comparison binary operators

  • Logical/set binary operators

Arithmetic binary operator

Arithmetic binary operators, iki sayı arasında yapılan matematiksel işlemleri ifade eden binary operatörlerdir. Bu operatörler, iki sayıyı toplama, çıkarma, çarpma veya bölme işlemlerinde kullanılarak sonucu bir skaler değere dönüştürür.

Aşağıda arithmetic binary operatorlar hakkında maddeler halinde açıklamalar bulabilirsiniz:

Operatör
Açıklama

+

İki sayıyı veya vektörleri toplar ve sonucu bir skaler değer olarak döndürür.

-

İki sayıyı veya vektörlerden birini diğerinden çıkarır ve sonucu bir skaler değer olarak döndürür.

*

İki sayıyı veya vektörleri çarpar ve sonucu bir skaler değer olarak döndürür.

/

İki sayıyı veya bir vektörü diğerine bölerek oranını hesaplar ve sonucu bir skaler değer olarak döndürür.

%

İki sayının modülünü hesaplar ve sonucu bir skaler değer olarak döndürür.

**

İki sayının üstünü hesaplar ve sonucu bir skaler değer olarak döndürür.

Arithmetic binary operatorlar, matematiksel hesaplamaların yanı sıra veri analizi, görselleştirme ve programlama dillerinde kullanılır. PromQL'de kullanıldıklarında, metric verileri işlemek için kullanılırlar ve sonucu skaler bir değer olarak döndürürler.

Bu operatörler arasında öncelik sıralaması bulunur, öncelik sıralaması şu şekildedir:

  1. **

  2. *, /, %

  3. +, -

Yani, öncelik sıralamasına uygun olarak işlemler yapılır. Örneğin, 2 + 3 * 4 işleminde çarpma işlemi önce yapılır ve sonuç olarak 14 elde edilir.

Example;

node_memory_Active_bytes/8

Bu sorgu, bir sistemdeki "aktif bellek" miktarını bayt cinsinden ifade eden node_memory_Active_bytes metriğinin 8'e bölünmesi işleminden oluşur.

Comparison binary operators

PromQL'deki Comparison Binary Operatorlar, karşılaştırma işlemleri yapmak için kullanılan operatörlerdir. Bu operatörler, iki değeri karşılaştırır ve sonucu true (doğru) veya false (yanlış) olarak döndürür.

Operatör
Açıklama

==

İki değerin eşit olup olmadığını kontrol eder. Eşitse true, değilse false döndürür.

!=

İki değerin eşit olmadığını kontrol eder. Eşit değilse true, eşitse false döndürür.

>

Sol taraftaki değerin sağ taraftakinden büyük olup olmadığını kontrol eder. Büyükse true, değilse false döndürür.

>=

Sol taraftaki değerin sağ taraftakinden büyük veya eşit olup olmadığını kontrol eder. Büyük veya eşitse true, değilse false döndürür.

<

Sol taraftaki değerin sağ taraftakinden küçük olup olmadığını kontrol eder. Küçükse true, değilse false döndürür.

<=

Sol taraftaki değerin sağ taraftakinden küçük veya eşit olup olmadığını kontrol eder. Küçük veya eşitse true, değilse false döndürür.

Bu operatörler, özellikle metrik verileri sorgularken sıklıkla kullanılır. Örneğin, CPU kullanımı, bellek kullanımı, ağ trafiği vb. gibi metriklerin belirli bir eşik değerinin üzerine çıkıp çıkmadığını kontrol etmek için bu operatörler kullanılabilir.

Example;

node_procs_running>6

Bu sorgu, bir düğümde (node) çalışan işlemlerin sayısının 6'dan büyük olup olmadığını kontrol eder.

Sorguda yer alan > operatörü, sağ tarafındaki değerin sol tarafındakinden büyük olup olmadığını kontrol eder. Bu durumda, sorgu, bir düğümde (node) çalışan işlemlerin sayısının 6'dan büyük olup olmadığını kontrol eder. Sonuç olarak, eğer çalışan işlemlerin sayısı 6'dan büyükse, sorgu true (doğru) değerini döndürür. Aksi halde, sorgu false (yanlış) değerini döndürür.

Logical/set binary operators

PromQL'de, mantıksal/set ikili operatörleri, iki veya daha fazla ifadeyi karşılaştırmak ve sonuçları birleştirmek için kullanılan operatörlerdir. PromQL'de yaygın olarak kullanılan bazı mantıksal/set ikili operatörler aşağıda açıklanmaktadır:

  1. and: İki veya daha fazla ifadenin "ve" mantıksal işlemi yapılır. Sonuç, tüm ifadelerin doğru (true) olması durumunda true (doğru) değerini döndürür.

  2. or: İki veya daha fazla ifadenin "veya" mantıksal işlemi yapılır. Sonuç, en az bir ifade doğru (true) olduğunda true (doğru) değerini döndürür.

  3. unless: İlk ifade ikinci ifadeye eşit veya küçük olduğunda true (doğru) değerini döndürür. Aksi halde, false (yanlış) değerini döndürür.

  4. group_left, group_right: Bu operatörler, etiket çiftleri üzerindeki işlemlerde kullanılır ve birleştirme işlemi için kullanılır. group_left operatörü sol etiket çiftine, group_right operatörü ise sağ etiket çiftine uygulanır.

Example;

prometheus_http_requests_total or promhttp_metric_handler_requests_total

Bu sorgu, prometheus_http_requests_total adlı metriği ve promhttp_metric_handler_requests_total adlı metriği birleştirir. Her iki metrik de HTTP isteklerini sayar ve prometheus server'ı üzerinde gerçekleşen farklı isteklerin sayısını hesaplar. or operatörü, her iki metrikten elde edilen sonuçları birleştirir ve sonuç olarak iki metriğin ölçtüğü toplam HTTP istek sayısını gösterir.

node_filesystem_avail_bytes{fstype="ext4"} and node_filesystem_size_bytes{fstype="ext4"}

Bu "and" sorgusu olarak bilinen iki farklı metrik etiketi arasında bir kesişim bulmaya çalışır. Sonuç olarak, bu sorgu "ext4" dosya sistemi türüne sahip disk bölümlerinin mevcut ve toplam bayt sayılarının kesişimini verir ve sonuçlar her zaman and ifadesinin ilk vektöründen gelir.

Özetle,

node_filesystem_size_bytes{fstype="ext4"} and node_filesystem_avail_bytes{fstype="ext4"}

Yukarıdaki sorgunun çıktısı, ext4 dosya sistem türüne sahip olan bir cihazın toplam dosya sistemi boyutunu vermektedir.

node_filesystem_avail_bytes{fstype="ext4"} and node_filesystem_size_bytes{fstype="ext4"}

Yukarıdaki sorgunun çıktısı, ext4 dosya sistem türüne sahip olan bir cihazın kullanılabilir dosya sistemi alanını (byte cinsinden) göstermektedir.

node_filesystem_avail_bytes{mountpoint="/"} and node_filesystem_size_bytes{mountpoint="/"}

Bu sorgu, node_filesystem_avail_bytes ve node_filesystem_size_bytes metriklerini mountpoint="/", yani kök dizin için filtreler. and operatörü ile bu iki metriğin tam olarak eşleşen etiket kümelerine sahip olan öğelerini seçer ve diğer öğeleri atar. Sonuçlar her zaman and ifadesinin ilk vektöründen gelir.

More Examples;

prometheus_http_requests_total*2

prometheus_http_requests_total adlı metriğin her bir örneğindeki değerleri 2 ile çarpar.

node_cpu_seconds_total>500

Bu sorgu, node_cpu_seconds_total adlı metrikte toplam CPU kullanım süresini saniye cinsinden tutan değerlerin 500'den büyük olan örneklerini seçer. Bu sorgu, özellikle yüksek CPU kullanımı olan işlemleri izlemek için kullanılabilir. node_cpu_seconds_total metriği, her bir işlem için kullanım süresi miktarını kaydeder. >500 ifadesi, sorgunun sadece 500 saniyeden fazla CPU kullanımı olan işlemleri seçmesini sağlar.

PreviousSelectors & MatchersNextignoring and on

Last updated 2 years ago

Was this helpful?

👨‍⚕️
🔢