docs: Add NeatLogs integration videos to documentation - #5940
docs: Add NeatLogs integration videos to documentation#5940dotslashsimran wants to merge 1 commit into
Conversation
📝 WalkthroughWalkthroughThe Neatlogs integration page was rewritten with updated metadata, feature cards, setup code, capability videos, and resource links. ChangesNeatlogs integration documentation
🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
✨ Finishing Touches🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
There was a problem hiding this comment.
Actionable comments posted: 3
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Inline comments:
In `@docs/en/observability/neatlogs.mdx`:
- Around line 21-31: Remove the commented-out TODO placeholder block that
contains "ADD YOUTUBE VIDEO HERE" and the commented iframe JSX (the multi-line
{/* ... */} block containing <iframe ... />) from the docs page; simply delete
that entire commented block so the obsolete placeholder and comments are not
left in docs/en/observability/neatlogs.mdx (the iframe/comment block is the
unique identifier to locate and remove).
- Around line 90-92: The markdown references a missing video asset
src="/images/neatlogs-traces.mp4" inside the <video> element (seen in the <video
autoPlay loop muted playsInline className="w-full rounded-xl"> block); fix this
by either adding the missing file neatlogs-traces.mp4 into the docs/images/
directory or updating the src attribute to the correct existing asset path
(matching how neatlogs-experiments.mp4, neatlogs-codefixes.mp4, and
neatlogs-evals.mp4 are referenced) so the <source src="..."> points to a present
file.
- Around line 59-61: The docs currently instruct users to copy NEATLOGS_API_KEY
but the Quick Setup example calls neatlogs.init(...
endpoint=os.environ["NEATLOGS_ENDPOINT"], ...), which will raise a KeyError and
doesn't explain where to get NEATLOGS_ENDPOINT; either remove the endpoint
argument from the neatlogs.init example (so the SDK uses its default endpoint)
or update the guide to add a short step explaining how to obtain/set
NEATLOGS_ENDPOINT (include the env var name NEATLOGS_ENDPOINT and an example
value such as the provider default like https://api.neatlogs.com/v4/batch) and
change the code to safely read the env var (or document that it’s optional).
🪄 Autofix (Beta)
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: Organization UI
Review profile: CHILL
Plan: Pro Plus
Run ID: f635411f-9999-49c1-8890-e35c49376acb
⛔ Files ignored due to path filters (6)
docs/images/neatlogs-2.pngis excluded by!**/*.pngdocs/images/neatlogs-3.pngis excluded by!**/*.pngdocs/images/neatlogs-4.pngis excluded by!**/*.pngdocs/images/neatlogs-codefixes.mp4is excluded by!**/*.mp4docs/images/neatlogs-evals.mp4is excluded by!**/*.mp4docs/images/neatlogs-experiments.mp4is excluded by!**/*.mp4
📒 Files selected for processing (1)
docs/en/observability/neatlogs.mdx
|
This PR is stale because it has been open for 45 days with no activity. |
There was a problem hiding this comment.
Pull request overview
Updates the Neatlogs observability documentation to better demonstrate key product workflows by restructuring the page and embedding multiple demo videos directly into the guide.
Changes:
- Reworked
docs/en/observability/neatlogs.mdxinto a clearer “What is / Quick Setup / Resources” flow. - Embedded a YouTube overview and added four inline MP4 demos for core Neatlogs features.
- Streamlined the setup steps by removing older static imagery and consolidating feature descriptions into cards.
Reviewed changes
Copilot reviewed 1 out of 8 changed files in this pull request and generated 3 comments.
Show a summary per file
| File | Description |
|---|---|
| docs/en/observability/neatlogs.mdx | Restructures the Neatlogs integration doc, adds embeds (YouTube + MP4), and updates setup instructions/resources. |
| docs/images/neatlogs-traces.mp4 | Demo video referenced by the “Traces logged directly in your dashboard” step. |
| docs/images/neatlogs-experiments.mp4 | Demo video referenced by the “Experiments” step. |
| docs/images/neatlogs-codefixes.mp4 | Demo video referenced by the “Code fixes directly in your IDE” step. |
| docs/images/neatlogs-evals.mp4 | Demo video referenced by the “Human evaluations” step. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
| neatlogs.init( | ||
| api_key=os.environ["NEATLOGS_API_KEY"], | ||
| workflow_name="my-agent", | ||
| instrumentations=["crewai"], | ||
| ) |
| <Card title="Neatlogs Docs" icon="book" href="https://docs.neatlogs.com/"> | ||
| Full SDK reference and integration guides | ||
| </Card> | ||
| <Card title="Dashboard & API Key" icon="key" href="https://neatlogs.com/?utm_source=crewAI-docs"> |
| frameBorder="0" | ||
| allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" | ||
| allowFullScreen | ||
| /> |
There was a problem hiding this comment.
Pull request overview
Copilot reviewed 1 out of 8 changed files in this pull request and generated no new comments.
Comments suppressed due to low confidence (5)
docs/en/observability/neatlogs.mdx:57
- The setup snippet reads
NEATLOGS_API_KEYfrom the environment, but the steps never mention setting that variable. As written, readers can copy/paste the code and end up passingNoneas the API key (or otherwise failing), even though step 1 only says “copy the API key”. Add an explicit note about exportingNEATLOGS_API_KEY(or passing the key directly) before the snippet.
<Step title="Add this before your Crew runs">
Call `neatlogs.init()` before importing CrewAI so the auto-instrumentation patches land first.
docs/en/observability/neatlogs.mdx:84
- This demo video is set to autoplay. Autoplaying motion content can be problematic for accessibility (and is distracting in docs), and it forces immediate media download. Prefer user-initiated playback with controls.
<video autoPlay loop muted playsInline className="w-full rounded-xl">
docs/en/observability/neatlogs.mdx:91
- This demo video is set to autoplay. Autoplaying motion content can be problematic for accessibility (and is distracting in docs), and it forces immediate media download. Prefer user-initiated playback with controls.
<video autoPlay loop muted playsInline className="w-full rounded-xl">
docs/en/observability/neatlogs.mdx:98
- This demo video is set to autoplay. Autoplaying motion content can be problematic for accessibility (and is distracting in docs), and it forces immediate media download. Prefer user-initiated playback with controls.
<video autoPlay loop muted playsInline className="w-full rounded-xl">
docs/en/observability/neatlogs.mdx:77
- These demo videos are set to autoplay. Autoplaying motion content can be problematic for accessibility (and is distracting in docs), and it forces immediate media download. Prefer user-initiated playback with controls.
This issue also appears in the following locations of the same file:
- line 84
- line 91
- line 98
<video autoPlay loop muted playsInline className="w-full rounded-xl">
crewAI adopted directory-based docs versioning with an Edge channel (crewAIInc#6202) while this PR was open, moving the live docs tree from docs/en/ to docs/edge/en/. That commit relocated whatever was still at docs/en/observability/neatlogs.mdx on main at the time, which was the pre-PR version of this page, none of this PR's improvements had landed yet. This carries the PR's actual current state (updated copy, demo videos, and refreshed screenshots) onto the new docs/edge/en/ path so it lands on the live docs tree instead of a frozen version snapshot. No content changes beyond the path move, this is the same page already reviewed by CodeRabbit and GitHub Copilot on this PR. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
3cb8c9e to
dbb7b62
Compare
There was a problem hiding this comment.
Pull request overview
Copilot reviewed 1 out of 8 changed files in this pull request and generated no new comments.
Suppressed comments (4)
docs/edge/en/observability/neatlogs.mdx:84
- These videos autoplay and loop. Autoplaying motion content can be hard to pause/stop for some users and may hurt performance (large MP4s downloading immediately). Consider disabling autoplay/loop and adding controls + a conservative preload setting.
<video autoPlay loop muted playsInline className="w-full rounded-xl">
docs/edge/en/observability/neatlogs.mdx:91
- These videos autoplay and loop. Autoplaying motion content can be hard to pause/stop for some users and may hurt performance (large MP4s downloading immediately). Consider disabling autoplay/loop and adding controls + a conservative preload setting.
<video autoPlay loop muted playsInline className="w-full rounded-xl">
docs/edge/en/observability/neatlogs.mdx:98
- These videos autoplay and loop. Autoplaying motion content can be hard to pause/stop for some users and may hurt performance (large MP4s downloading immediately). Consider disabling autoplay/loop and adding controls + a conservative preload setting.
<video autoPlay loop muted playsInline className="w-full rounded-xl">
docs/edge/en/observability/neatlogs.mdx:77
- These videos autoplay and loop. Autoplaying motion content can be hard to pause/stop for some users and may hurt performance (large MP4s downloading immediately). Consider disabling autoplay/loop and adding controls + a conservative preload setting.
This issue also appears in the following locations of the same file:
- line 84
- line 91
- line 98
<video autoPlay loop muted playsInline className="w-full rounded-xl">
|
Note GitHub couldn't provide a complete incremental comparison for this pull request, so CodeRabbit is performing a full review instead. This review may take a little longer. |
There was a problem hiding this comment.
Actionable comments posted: 2
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Inline comments:
In `@docs/edge/en/observability/neatlogs.mdx`:
- Around line 113-115: Update the GitHub SDK Card for NeatLogs to state Python
3.10+ instead of Python 3.8+, matching the currently supported SDK compatibility
range.
- Around line 62-72: Update the CrewAI example around neatlogs.init and the Crew
usage to remove instrumentations=["crewai"], instantiate the crew normally, then
call neatlogs.wrap(crew) before execution. Add flush/shutdown handling after
crew.kickoff() for short-lived scripts, and remove the statement claiming no
other code changes are needed.
🪄 Autofix
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: Organization UI
Review profile: CHILL
Plan: Pro Plus
Run ID: bf85edcb-7246-45c5-87d4-fb426cfda653
⛔ Files ignored due to path filters (7)
docs/images/neatlogs-2.pngis excluded by!**/*.pngdocs/images/neatlogs-3.pngis excluded by!**/*.pngdocs/images/neatlogs-4.pngis excluded by!**/*.pngdocs/images/neatlogs-codefixes.mp4is excluded by!**/*.mp4docs/images/neatlogs-evals.mp4is excluded by!**/*.mp4docs/images/neatlogs-experiments.mp4is excluded by!**/*.mp4docs/images/neatlogs-traces.mp4is excluded by!**/*.mp4
📒 Files selected for processing (1)
docs/edge/en/observability/neatlogs.mdx
| neatlogs.init( | ||
| api_key=os.getenv("NEATLOGS_API_KEY"), | ||
| workflow_name="my-agent", | ||
| instrumentations=["crewai"], | ||
| ) | ||
|
|
||
| # Now import and run your crew as normal | ||
| from crewai import Crew, Agent, Task | ||
| ``` | ||
|
|
||
| ## Watch It Work | ||
|
|
||
| ### 🔍 Full Demo (4 min) | ||
|
|
||
| <iframe | ||
| className="w-full aspect-video rounded-xl" | ||
| src="https://www.youtube.com/embed/8KDme9T2I7Q?si=b8oHteaBwFNs_Duk" | ||
| title="NeatLogs overview" | ||
| frameBorder="0" | ||
| allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" | ||
| allowFullScreen | ||
| ></iframe> | ||
|
|
||
| ### ⚙️ CrewAI Integration (30 s) | ||
|
|
||
| <iframe | ||
| className="w-full aspect-video rounded-xl" | ||
| src="https://www.loom.com/embed/9c78b552af43452bb3e4783cb8d91230?sid=e9d7d370-a91a-49b0-809e-2f375d9e801d" | ||
| title="Loom video player" | ||
| frameBorder="0" | ||
| allowFullScreen | ||
| ></iframe> | ||
|
|
||
|
|
||
|
|
||
| ## Links & Support | ||
|
|
||
| - 📘 [Neatlogs Docs](https://docs.neatlogs.com/) | ||
| - 🔐 [Dashboard & API Key](https://app.neatlogs.com/) | ||
| - 🐦 [Follow on Twitter](https://twitter.com/neatlogs) | ||
| - 📧 Contact: hello@neatlogs.com | ||
| - 🛠 [GitHub SDK](https://github.com/NeatLogs/neatlogs) | ||
|
|
||
|
|
||
| That's it — no changes to the rest of your code. |
There was a problem hiding this comment.
🎯 Functional Correctness | 🟠 Major | ⚡ Quick win
🧩 Analysis chain
🌐 Web query:
According to the current Neatlogs Python CrewAI integration documentation, should users pass instrumentations=["crewai"], or call neatlogs.wrap(crew)? Does a short-lived CrewAI script need neatlogs.flush()andneatlogs.shutdown()?
💡 Result:
According to the current Neatlogs documentation, users should use neatlogs.wrap(crew) to instrument CrewAI; they should explicitly NOT pass instrumentations=["crewai"] in neatlogs.init [1][2][3]. The wrap method patches the necessary components directly to capture agents, tasks, tools, and LLM calls [1][2]. For short-lived CrewAI scripts, yes, users must call neatlogs.flush and neatlogs.shutdown at the end of the execution [4][5]. Because the Neatlogs SDK batches spans and exports them in the background on a timer, a short-lived script may exit before the background export fires, causing data to be lost [4]. Calling flush forces an immediate export of the pending spans, and shutdown stops the background thread cleanly [4].
Citations:
- 1: https://docs.neatlogs.com/guides/multi-framework
- 2: https://docs.neatlogs.com/sdk/supported-libraries
- 3: https://docs.neatlogs.com/instrumentation/trace-context-manager
- 4: https://docs.neatlogs.com/reference/init-reference
- 5: https://github.com/neatlogs/neatlogs
🏁 Script executed:
#!/bin/bash
set -euo pipefail
echo "## nealtlogs docs file excerpt"
sed -n '30,130p' docs/edge/en/observability/neatlogs.mdx || true
echo
echo "## neatlogs references in docs"
rg -n "instrumentations=|neatlogs\.wrap|neatlogs\.flush|neatlogs\.shutdown|neatlogs\.init|crewai" docs/edge/en/observability/neatlogs.mdx || true
echo
echo "## relevant external docs snippets"
python3 - <<'PY'
from urllib.request import urlopen
urls = [
"https://docs.neatlogs.com/integrations/crewai",
"https://docs.neatlogs.com/reference/init-reference",
"https://docs.neatlogs.com/guides/multi-framework",
]
for url in urls:
print(f"\n### {url}")
try:
text = urlopen(url, timeout=20).read().decode("utf-8")
for needle in ["instrumentations", "neatlogs.wrap", "neatlogs.flush", "neatlogs.shutdown"] :
idx = text.lower().find(needle.lower())
if idx != -1:
start = max(0, idx - 500)
end = min(len(text), idx + 900)
print(text[start:end].replace("\n", " "))
except Exception as e:
print(f"ERROR: {e}")
PYRepository: crewAIInc/crewAI
Length of output: 4794
Use neatlogs.wrap(crew) for CrewAI.
Line 65 passes instrumentations=["crewai"], but the supported CrewAI integration calls neatlogs.wrap(crew). Update the example to show wrapping after Crew(...) and flush/shutdown after crew.kickoff() for short-lived scripts; remove the “no changes to the rest of your code” statement.
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
In `@docs/edge/en/observability/neatlogs.mdx` around lines 62 - 72, Update the
CrewAI example around neatlogs.init and the Crew usage to remove
instrumentations=["crewai"], instantiate the crew normally, then call
neatlogs.wrap(crew) before execution. Add flush/shutdown handling after
crew.kickoff() for short-lived scripts, and remove the statement claiming no
other code changes are needed.
| <Card title="GitHub SDK" icon="github" href="https://github.com/NeatLogs/neatlogs"> | ||
| MIT licensed · Python 3.8+ | ||
| </Card> |
There was a problem hiding this comment.
🎯 Functional Correctness | 🟡 Minor | ⚡ Quick win
🧩 Analysis chain
🌐 Web query:
What Python versions does the current Neatlogs Python SDK support?
💡 Result:
The current Neatlogs Python SDK supports Python versions 3.10 and newer, up to (but excluding) 3.14 [1][2][3]. This requirement is explicitly stated in the SDK documentation, its PyPI metadata, and its project configuration files [3][4].
Citations:
- 1: https://docs.neatlogs.com/sdk/python
- 2: https://github.com/Neatlogs/neatlogs
- 3: https://pypi.org/project/neatlogs/
- 4: https://github.com/neatlogs/neatlogs/blob/main/pyproject.toml
🏁 Script executed:
#!/bin/bash
set -euo pipefail
# Inspect the referenced card without running repository code.
if [ -f "docs/edge/en/observability/neatlogs.mdx" ]; then
sed -n '105,120p' docs/edge/en/observability/neatlogs.mdx
else
echo "Referenced file missing"
fi
printf '\n--- Neatlogs Python SDK version hints in repository (if present) ---\n'
rg -n "3\.8|3\.1[0-9]|python_requires|requires-python|pyproject\.toml|neatlogs" -S --glob '!node_modules' --glob '!dist' --glob '!build' --glob '!*.lock' . | head -n 80Repository: crewAIInc/crewAI
Length of output: 8137
Correct the Neatlogs Python compatibility claim.
The card says Python 3.8+, but the current Neatlogs Python SDK supports Python 3.10 through 3.13. Update this to Python 3.10+, or link a specific SDK release that supports Python 3.8.
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
In `@docs/edge/en/observability/neatlogs.mdx` around lines 113 - 115, Update the
GitHub SDK Card for NeatLogs to state Python 3.10+ instead of Python 3.8+,
matching the currently supported SDK compatibility range.
Summary
Enhanced the NeatLogs integration documentation with 4 demo videos showcasing key features:
Also removed unnecessary image from step 1 to streamline the setup guide.
Changes
docs/en/observability/neatlogs.mdxwith embedded videosdocs/images/Visual Preview
The updated documentation now features:
🎬 Generated with Claude Code