Если в Grafana Loki необходимо выполнить поиск по одному из полей JSON-лога, то делается это следдующим образом:
Сначала достаем поле из JSON и делаем из него лэйбл, затем добавляем фильтрацию по этому лэйблу.
Если в Grafana Loki необходимо выполнить поиск по одному из полей JSON-лога, то делается это следдующим образом:
Сначала достаем поле из JSON и делаем из него лэйбл, затем добавляем фильтрацию по этому лэйблу.
Задача
Есть ячейка со строкой - временем в формате ЧЧ:ММ:СС.млс (например, 18:45:13.785). Необходимо преобразовать это значение в число миллисекунд.
Решение
Если представить, что исходная строка находится в ячейке A1, формула будет выглядеть следующим образом:
=LEFT(A1; 2)*3600000 + MID(A1; 4; 2) * 60000 + MID(A1; 7; 2)*1000 + RIGHT(A1; 3)
Читать переменные окружения gradle умеет:
System.getenv("HOME")
А вот устанавливать - нет, метод а-ля System.setenv() отсутствует. Однако, в задачах, запускающих отдельный процесс, можно установить переменную окружения для этого отдельно стартующего процесса, например:
task('myTask', type:Exec) {
environment "FOO", "bar"
workingDir '.'
commandLine 'cmd', '/c', 'print.bat'
}
Проблема
Есть WSL2 и Ubuntu под ним. После некоторых действий в Ubuntu создалось большое количество больших и ненужных файлов, заметил я это по росту файла C:\Users\%USER%\AppData\Local\Packages\CanonicalGroupLimited.Ubuntu18.04onWindows_79rhkp1fndgsc\LocalState\ext4.vhdx. Сами ненужные файлы в Ubuntu я почистил, однако, vhdx-файл не уменьшился. Команда df в Ubuntu показывает утилизацию места на основном томе всего в 3%.
Решение
В powershell-консоли, запущенной с правами администратора, переходим в директорию, где лежит vhdx-файл, выполняем:
wsl --shutdown
optimize-vhd -Path .\ext4.vhdx -Mode full
Берем хостнэйм, указанный в connection string. Делаем:
dig -t SRV _mongodb._tcp.<хостнэйм из connection string>
либо
nslookup -q=SRV _mongodb._tcp.<хостнэйм из connection string>
В ответ получаем записи вида:
_mongodb._tcp.***.mongodb.net service = 0 0 1025 ***.mongodb.net.
_mongodb._tcp.***.mongodb.net service = 0 0 1026 ***.mongodb.net.
_mongodb._tcp.***.mongodb.net service = 0 0 1024 ***.mongodb.net.
В правой части указаны хосты и порты фактических серверов. Теперь можно проверять сетевую доступность, например, с помощью nc:
nc -zv -w 5 ***.mongodb.net 1024
Создаем файл %UserProfile%\.wslconfig, и в нем прописываем:
[wsl2]
memory=8GB
Выполняем:
. /etc/os-release
sudo sh -c "echo 'deb http://download.opensuse.org/repositories/devel:/kubic:/libcontainers:/stable/x${NAME}_${VERSION_ID}/ /' > /etc/apt/sources.list.d/devel:kubic:libcontainers:stable.list"
wget -nv https://download.opensuse.org/repositories/devel:kubic:libcontainers:stable/x${NAME}_${VERSION_ID}/Release.key -O Release.key
sudo apt-key add - < Release.key
sudo apt-get update -qq
sudo apt-get -qq -y install podman
sudo mkdir -p /etc/containers
echo -e "[registries.search]\nregistries = ['docker.io', 'quay.io']" | sudo tee /etc/containers/registries.conf
Для Ubuntu 18.04 открываем конфигурационный файл
sudo nano /usr/share/containers/containers.conf
, и правим там следующие строки:
cgroup_manager = "cgroupfs"
...
events_logger = "file"
Если при запуске podman возникает ошибка:
cannot clone: Invalid argument
Error: cannot re-exec process
, вероятно, версия используемая версия WSL не 2, а 1. Это можно проверить командой:
wsl --list -v
В колонке "VERSION" должна быть двойка, иначе нужно сделать апгрейд до версии 2 командой:
wsl --set-version Ubuntu-20.04 2