Сборка plv8 для PostgreSQL

sudo apt-get install -y \
    build-essential \
    postgresql-server-dev-16 \
    cmake \
    ninja-build \
    python3 \
    pkg-config \
    libtinfo5 \
    libc++-dev \
    libc++abi-dev \
    libv8-dev \
    curl \
    git \
    wget
# Скачайте и соберите plv8
git clone https://github.com/plv8/plv8.git
cd plv8
make
sudo make install

Если будет ошибка при запуске: https://github.com/plv8/plv8/issues/571

ERROR:  загрузить библиотеку "/usr/lib/postgresql/16/lib/plv8-3.2.4.so" не удалось: /usr/lib/postgresql/16/lib/plv8-3.2.4.so: undefined symbol: _ZTIN2v84base6ThreadE 

ОШИБКА: загрузить библиотеку "/usr/lib/postgresql/16/lib/plv8-3.2.4.so" не удалось: /usr/lib/postgresql/16/lib/plv8-3.2.4.so: undefined symbol: _ZTIN2v84base6ThreadE
SQL state: 58P01

Просмотр статистики активных запросов в PostresSQL

-- Показывает размеры таблиц, участвующих в запросах
WITH table_sizes AS (
    SELECT 
        schemaname,
        tablename,
        pg_size_pretty(pg_total_relation_size(schemaname||'.'||tablename)) as size
    FROM pg_tables 
    WHERE schemaname NOT LIKE 'pg_%' AND schemaname != 'information_schema'
)
SELECT 
    a.pid,
    a.usename,
    a.datname,
    a.query,
    a.state,
    -- Можно добавить JOIN с table_sizes если знаете какие таблики используются
    now() - a.query_start as duration
FROM pg_stat_activity a
WHERE a.state = 'active' 
  AND a.query NOT LIKE '%pg_stat_activity%';

Восстановление grub загрузчика по умолчанию

На ПК были одновременно установлены Ubuntu 22.04 и Windows 10. После обновления Windows 10 до 11 загрузчик сломался и выдавал ошибку.

Примечание: скриншота нет под рукой, но ошибка говорила, что загрузка не возможна требуется восстановление (и это всё на синем экране windows).

Мне помогло следующее решение.

Читать далее «Восстановление grub загрузчика по умолчанию»

Практическое применение elasticsearch+fluent-bit

Данная связка будет применяться для хранения логов от приложений. Ниже пример compose файла:

version: "3.5"
services:
  elasticsearch:
    image: elasticsearch:8.19.3
    ports:
      - "9200:9200"
      - "9300:9300"
    environment:
      - "ES_JAVA_OPTS=-Xms512m -Xmx512m"
      - discovery.type=single-node
      - xpack.security.enabled=false  # Disable security for development
    volumes:
      - ./elasticsearch/data:/usr/share/elasticsearch/data
      - ./elasticsearch/logs:/usr/share/elasticsearch/logs
  fluentbit:
    build: .
    ports:
      - "8888:8888"
      - "24224:24224"
      - "24224:24224/udp"
    depends_on:
      - elasticsearch
Читать далее «Практическое применение elasticsearch+fluent-bit»

Elasticsearch — основные команды

Термины

  • localhost:9200 — адрес для доступа к elasticsearch

Команды

Проверка доступности:

curl -X GET localhost:9200
Читать далее «Elasticsearch — основные команды»

Настройка сети для docker и установка разрешений в ufw

По умолчанию настройки /etc/docker/daemon.json берём следующие настройки:

{
"bip": "172.66.0.1/16",
"default-address-pools": [{
"scope": "local",
"base": "172.20.0.0/16",
"size": 24
}],
"log-driver": "local",
"log-opts": {
"max-size": "10m"
}
}
Читать далее «Настройка сети для docker и установка разрешений в ufw»

Установка и настройка Jupyter Lab

Установка выполняется из под Ubuntu 22.04

pip install jupyterlab
jupyter lab --generate-config

Переходим в файл /home/username/.jupyter/jupyter_lab_config.py

Находим параметр c.ServerApp.notebook_dir и устанавливаем место для хранения файлов от тетрадок

Запускаем:

jupyter lab