diff options
-rw-r--r-- | continuedev/src/continuedev/libs/util/telemetry.py | 5 | ||||
-rw-r--r-- | continuedev/src/continuedev/plugins/steps/chat.py | 7 | ||||
-rw-r--r-- | continuedev/src/continuedev/plugins/steps/core/core.py | 5 | ||||
-rw-r--r-- | docs/docs/telemetry.md | 2 | ||||
-rw-r--r-- | extension/src/test-suite/environmentSetup.test.ts | 4 |
5 files changed, 20 insertions, 3 deletions
diff --git a/continuedev/src/continuedev/libs/util/telemetry.py b/continuedev/src/continuedev/libs/util/telemetry.py index 0f66ad8d..2c76f4a3 100644 --- a/continuedev/src/continuedev/libs/util/telemetry.py +++ b/continuedev/src/continuedev/libs/util/telemetry.py @@ -26,6 +26,11 @@ class PostHogLogger: self.unique_id = unique_id or "NO_UNIQUE_ID" self.allow_anonymous_telemetry = allow_anonymous_telemetry or True + # Capture initial event + self.capture_event("session_start", { + "os": os.name + }) + def capture_event(self, event_name: str, event_properties: Any): # logger.debug( # f"Logging to PostHog: {event_name} ({self.unique_id}, {self.allow_anonymous_telemetry}): {event_properties}") diff --git a/continuedev/src/continuedev/plugins/steps/chat.py b/continuedev/src/continuedev/plugins/steps/chat.py index 8e494ad0..ad19434f 100644 --- a/continuedev/src/continuedev/plugins/steps/chat.py +++ b/continuedev/src/continuedev/plugins/steps/chat.py @@ -6,12 +6,13 @@ from pydantic import Field from ...libs.util.strings import remove_quotes_and_escapes from .main import EditHighlightedCodeStep -from .core.core import DisplayErrorStep, MessageStep +from .core.core import MessageStep from ...core.main import FunctionCall, Models from ...core.main import ChatMessage, Step, step_to_json_schema from ...core.sdk import ContinueSDK from ...libs.llm.openai import OpenAI from ...libs.llm.maybe_proxy_openai import MaybeProxyOpenAI +from ...libs.util.telemetry import posthog_logger import openai import os from dotenv import load_dotenv @@ -59,6 +60,10 @@ class SimpleChatStep(Step): generator = sdk.models.default.stream_chat( messages, temperature=sdk.config.temperature) + posthog_logger.capture_event("model_use", { + "model": sdk.models.default.name + }) + async for chunk in generator: if sdk.current_step_was_deleted(): # So that the message doesn't disappear diff --git a/continuedev/src/continuedev/plugins/steps/core/core.py b/continuedev/src/continuedev/plugins/steps/core/core.py index 78174bf6..1ef201da 100644 --- a/continuedev/src/continuedev/plugins/steps/core/core.py +++ b/continuedev/src/continuedev/plugins/steps/core/core.py @@ -19,6 +19,7 @@ from ....core.observation import Observation, TextObservation, TracebackObservat from ....core.main import ChatMessage, ContinueCustomException, Step, SequentialStep from ....libs.util.count_tokens import DEFAULT_MAX_TOKENS from ....libs.util.strings import dedent_and_get_common_whitespace, remove_quotes_and_escapes +from ....libs.util.telemetry import posthog_logger class ContinueSDK: @@ -520,6 +521,10 @@ Please output the code to be inserted at the cursor in order to fulfill the user generator = model_to_use.stream_chat( messages, temperature=sdk.config.temperature, max_tokens=max_tokens) + posthog_logger.capture_event("model_use", { + "model": model_to_use.name + }) + try: async for chunk in generator: # Stop early if it is repeating the file_suffix or the step was deleted diff --git a/docs/docs/telemetry.md b/docs/docs/telemetry.md index 1b9a8c4b..e0ea2158 100644 --- a/docs/docs/telemetry.md +++ b/docs/docs/telemetry.md @@ -11,6 +11,8 @@ We track - the steps that are run and their parameters
- whether you accept or reject suggestions (not the code itself)
- the traceback when an error occurs
+- the name of your OS
+- the name of the default model you configured
All data is anonymous and cleaned of PII before being sent to PostHog.
diff --git a/extension/src/test-suite/environmentSetup.test.ts b/extension/src/test-suite/environmentSetup.test.ts index d0406340..19d5470e 100644 --- a/extension/src/test-suite/environmentSetup.test.ts +++ b/extension/src/test-suite/environmentSetup.test.ts @@ -7,8 +7,8 @@ import fetch from "node-fetch"; import fkill from "fkill"; describe("Can start python server", () => { - test("Can start python server in under 10 seconds", async function () { - const allowedTime = 25_000; + test("Can start python server in under 35 seconds", async function () { + const allowedTime = 35_000; this.timeout(allowedTime + 10_000); try { fkill(65432, { force: true, silent: true }); |