Skip to main content

install-obs-migrate

Use when obs-migrate is missing, doctor fails, the user asks how to install/set up the CLI, uvx/pip fails, Python is too old, extras are missing, or any other migration skill cannot run because the tool is not Ready — owns getting elastic-observability-migration installed and verified before connect/migrate skills proceed. Not for Grafana/Datadog/Elastic credentials (use connect-to-o11y-source).

معلومات المصدر

المستودع
elastic/observability-migration-platform
آخر نشاط في المصدر
٣ أغسطس ٢٠٢٦ في ٢١:٠٧
لغة SKILL.md المكتشفة
الإنجليزية
النجوم
٧
التفرعات
٩

خيارات التثبيت

يُحدَّد Prompt الذي يراجع المصدر أولًا بشكل افتراضي. يمكنك التبديل إلى أمر مباشر أو تنزيل نسخة محلية.

مراجعة ملفات المصدر

اقرأ SKILL.md وأي ملفات مرافقة يعرضها SkillsMP قبل أن تقرر التثبيت.

عرض SKILL.md

SKILL.md
تعليمات المصدر · معاينة للقراءة فقط
name
install-obs-migrate
description
Use when obs-migrate is missing, doctor fails, the user asks how to install/set up the CLI, uvx/pip fails, Python is too old, extras are missing, or any other migration skill cannot run because the tool is not Ready — owns getting elastic-observability-migration installed and verified before connect/migrate skills proceed. Not for Grafana/Datadog/Elastic credentials (use connect-to-o11y-source).
# Install and verify `obs-migrate` **Audience:** operators who need a working `obs-migrate` before any migration. Other skills defer here so install guidance stays in one place. Goal: get a **Ready** `obs-migrate` on this machine, then hand off to the skill the user actually wanted (`connect-to-o11y-source`, `scan-o11y-environment`, migrate skills, etc.). This skill is the **only** place that owns install commands, extras, and doctor gotchas — other skills must defer here instead of inventing install steps. ## When to run this skill Run **before** any other migration skill when any of these are true: - `obs-migrate` / `uvx … obs-migrate` is not found - `obs-migrate doctor` exits non-zero or is not `Ready` - User asks how to install, which extra to use, or why Datadog/Grafana tooling is missing - Default system Python is too old (common on macOS) Do **not** use this skill for vendor/Elastic credentials — that is `connect-to-o11y-source`. ## Supported platforms - **macOS and Linux** only. Windows is not supported. - **Python 3.11+** required (3.11–3.13 is the tested range). - Canonical docs: `https://github.com/elastic/observability-migration-platform/blob/main/docs/command-contract.md` → Install And Setup; `README.md`. ## Step 0 — Detect current state ```bash command -v uvx command -v uv command -v obs-migrate python3 --version ``` Then run doctor with the recommended launcher first (uvx never needs `obs-migrate` on `PATH`). Only use the bare command when Step 0 already found it on `PATH`: ```bash uvx --from 'elastic-observability-migration[all]' obs-migrate doctor # or, if `command -v obs-migrate` succeeded above: # obs-migrate doctor ``` Interpret: | Observation | Action | |---|---| | `doctor` prints `Ready.` | Install is done — hand off to the calling skill | | `command not found: obs-migrate` and no `uv`/`uvx` | Install `uv`, then Step 1 | | `command not found: obs-migrate` but `uvx` works | The bare command was run without a launcher — re-run as `uvx --from 'elastic-observability-migration[all]' obs-migrate …`, `.venv/bin/obs-migrate …`, or after `source .venv/bin/activate` (spell the package out: `PKG` may be unset in this shell) | | Python `<3.11` | Install/use a newer Python (pyenv, python.org, Homebrew `python@3.12`), then retry | | doctor notes Datadog client not installed | Reinstall with `[datadog]` or `[all]` if the user needs Datadog **API** mode | | doctor prints `uv on PATH: no` / `uvx on PATH: no` | Informational, not a blocker — no command shells out to `uvx` at runtime. Install `uv` only if you want the `uvx` launcher | ## Step 1 — Install `uv` (recommended path) [`uv`](https://docs.astral.sh/uv/) provides `uv` + `uvx` (no global pip required): ```bash # https://docs.astral.sh/uv/getting-started/installation/ curl -LsSf https://astral.sh/uv/install.sh | sh # then open a new shell or source the installer hint so uv/uvx are on PATH command -v uvx ``` ## Step 2 — Choose the footprint | User needs | Extra | Notes | |---|---|---| | First-time / unsure / both sources | `[all]` (**default**) | Grafana + Datadog + tooling together | | Grafana / Prometheus only | `[grafana]` or `[all]` | Base package already includes Grafana translation deps; `[all]` is still simplest | | Datadog live API (`--input-mode api`) | `[datadog]` or `[all]` | File-mode Datadog works without the client; API mode needs `datadog-api-client` | | Contributor / repo checkout | `.[all,dev]` via `make sync` | Not the operator path | **Default recommendation:** `[all]` via `uvx` so you are not blocked mid-migration by a missing extra. ## Step 3 — Install and verify (operator path) ### Recommended: ephemeral `uvx` (no venv) ```bash PKG='elastic-observability-migration[all]' # Optional pin: PKG='elastic-observability-migration[all]==1.0.0' uvx --from "$PKG" obs-migrate doctor uvx --from "$PKG" obs-migrate list-samples ``` Always prefix commands with `uvx --from "$PKG"` unless the user wants a persistent install. ### Persistent venv ```bash PKG='elastic-observability-migration[all]' python3 -m venv .venv .venv/bin/pip install "$PKG" .venv/bin/obs-migrate doctor # Or activate once per shell, then use bare obs-migrate: # source .venv/bin/activate && obs-migrate doctor ``` A bare `obs-migrate` only resolves when its install location is on `PATH` — after `source .venv/bin/activate`, or a `pipx install` / `uv tool install` (next section). Otherwise use a launcher: `.venv/bin/obs-migrate …` (explicit path, no activate) or `uvx --from "$PKG" …`. Both venv launchers are relative paths. If the user is not in the directory that holds `.venv`, they get `no such file or directory` instead of `command not found` — have them `cd` there or use the absolute path. If the user hits `command not found: obs-migrate`, they most likely ran the bare command without one of those, in a shell where `PKG` may also be unset — so re-state the launcher with the package spelled out in full, e.g. `uvx --from 'elastic-observability-migration[all]' obs-migrate doctor`. See `README.md` → “If you see command not found”. ### Persistent tool install (bare command, no prefix) When the user wants `obs-migrate` on `PATH` for every shell: ```bash uv tool install 'elastic-observability-migration[all]' export PATH="$HOME/.local/bin:$PATH" obs-migrate doctor ``` The shim lands in `~/.local/bin` (`uv tool dir --bin` prints the real path). Do not drop the `export`: `uv` cannot change the `PATH` of the shell that invoked it, so without it the very next `obs-migrate doctor` fails with the same `command not found` — `uv` only prints a warning. Run `uv tool update-shell` once so later shells work without the export. `pipx install 'elastic-observability-migration[all]'` is equivalent. `uv` resolves against the newest Python present, so add `--python 3.13` when the default is above the tested 3.11–3.13 range. ### GitHub tag fallback (never `@main`) Only if PyPI is unreachable: ```bash PKG='elastic-observability-migration[all]@git+https://github.com/elastic/observability-migration-platform.git@v1.0.0' uvx --from "$PKG" obs-migrate doctor ``` ### Repo checkout (contributors only — not the operator path) ```bash make sync uv run obs-migrate doctor # or: .venv/bin/pip install -e ".[all,dev]" ``` ## Step 4 — Ready checklist (must pass) `obs-migrate doctor` must show: - `Ready.` - Required dependencies `ok` - For Datadog API work: `datadog (datadog-api-client): ok` - `uv`/`uvx` on `PATH` is reported for information only — no command needs it at runtime Then run one offline smoke (still no source credentials needed): ```bash uvx --from 'elastic-observability-migration[all]' obs-migrate list-samples ``` Exit `0` + sample JSON ⇒ install verified. **Hand off** to the skill the user originally asked for. ## Kibana tooling note No external Kibana tool is needed. `obs-migrate migrate` writes native Dashboard-as-Code artifacts (`dashboards/native/*.native.json`) and `obs-migrate upload --artifact-dir <dir>` sends them through the typed Kibana Dashboards API (`PUT /api/dashboards/{id}`) — there is no dashboard-YAML compile step, so nothing installs or fetches `kb-dashboard-cli` / `kb-dashboard-lint`, and `doctor` does not check for them. Migrate and upload work without the `[kibana]` extra. ## Honest limits / Do NOT - **Do NOT** send users to Docker or Windows install paths (unsupported). - **Do NOT** document `@main` git installs — pin a release tag. - **Do NOT** fold Grafana/Datadog/Elastic credential setup into this skill — hand off to `connect-to-o11y-source`. - **Do NOT** duplicate long install blocks in other skills — point here. - **Do NOT** claim install success without a `Ready` doctor (or explain the exact doctor failure and fix it). ## See also - `connect-to-o11y-source` — credentials and live source proof after install. - `evaluate-o11y-permissions` — Elastic/Kibana key capabilities. - `https://github.com/elastic/observability-migration-platform/blob/main/docs/command-contract.md` — Install And Setup (canonical). - `README.md` — short operator install. - PyPI: https://pypi.org/project/elastic-observability-migration/
عرض على GitHub