Data Models

pydantic model duetector.analyzer.models.AnalyzerBrief[source]

Bases: BaseModel

Brief of analyzer.

Show JSON schema
{
   "title": "AnalyzerBrief",
   "description": "Brief of analyzer.",
   "type": "object",
   "properties": {
      "tracers": {
         "items": {
            "type": "string"
         },
         "title": "Tracers",
         "type": "array",
         "uniqueItems": true
      },
      "collector_ids": {
         "items": {
            "type": "string"
         },
         "title": "Collector Ids",
         "type": "array",
         "uniqueItems": true
      },
      "briefs": {
         "additionalProperties": {
            "$ref": "#/$defs/Brief"
         },
         "title": "Briefs",
         "type": "object"
      }
   },
   "$defs": {
      "Brief": {
         "description": "Brief of a tracking set, mostly a table.",
         "properties": {
            "tracer": {
               "title": "Tracer",
               "type": "string"
            },
            "collector_id": {
               "title": "Collector Id",
               "type": "string"
            },
            "start": {
               "anyOf": [
                  {
                     "format": "date-time",
                     "type": "string"
                  },
                  {
                     "type": "null"
                  }
               ],
               "default": null,
               "title": "Start"
            },
            "end": {
               "anyOf": [
                  {
                     "format": "date-time",
                     "type": "string"
                  },
                  {
                     "type": "null"
                  }
               ],
               "default": null,
               "title": "End"
            },
            "count": {
               "anyOf": [
                  {
                     "type": "integer"
                  },
                  {
                     "type": "null"
                  }
               ],
               "default": null,
               "title": "Count"
            },
            "fields": {
               "default": {},
               "title": "Fields",
               "type": "object"
            }
         },
         "required": [
            "tracer",
            "collector_id"
         ],
         "title": "Brief",
         "type": "object"
      }
   },
   "required": [
      "tracers",
      "collector_ids",
      "briefs"
   ]
}

Fields:
field briefs: Dict[str, Brief] [Required]
field collector_ids: Set[str] [Required]

Set of collector ids

field tracers: Set[str] [Required]

Set of tracers

pydantic model duetector.analyzer.models.Brief[source]

Bases: BaseModel

Brief of a tracking set, mostly a table.

Show JSON schema
{
   "title": "Brief",
   "description": "Brief of a tracking set, mostly a table.",
   "type": "object",
   "properties": {
      "tracer": {
         "title": "Tracer",
         "type": "string"
      },
      "collector_id": {
         "title": "Collector Id",
         "type": "string"
      },
      "start": {
         "anyOf": [
            {
               "format": "date-time",
               "type": "string"
            },
            {
               "type": "null"
            }
         ],
         "default": null,
         "title": "Start"
      },
      "end": {
         "anyOf": [
            {
               "format": "date-time",
               "type": "string"
            },
            {
               "type": "null"
            }
         ],
         "default": null,
         "title": "End"
      },
      "count": {
         "anyOf": [
            {
               "type": "integer"
            },
            {
               "type": "null"
            }
         ],
         "default": null,
         "title": "Count"
      },
      "fields": {
         "default": {},
         "title": "Fields",
         "type": "object"
      }
   },
   "required": [
      "tracer",
      "collector_id"
   ]
}

Fields:
field collector_id: str [Required]
field count: int | None = None
field end: datetime | None = None
field fields: Dict[str, Any] = {}
field start: datetime | None = None
field tracer: str [Required]
pydantic model duetector.analyzer.models.Tracking[source]

Bases: BaseModel

Tracking model for analyzer.

Currently, this is a copy of duetector.collectors.models.Tracking. And as an ACL(anti-corruption layer), we will not use duetector.collectors.models.Tracking directly.

Show JSON schema
{
   "title": "Tracking",
   "description": "Tracking model for analyzer.\n\nCurrently, this is a copy of ``duetector.collectors.models.Tracking``.\nAnd as an ACL(anti-corruption layer), we will not use ``duetector.collectors.models.Tracking`` directly.",
   "type": "object",
   "properties": {
      "tracer": {
         "title": "Tracer",
         "type": "string"
      },
      "pid": {
         "anyOf": [
            {
               "type": "integer"
            },
            {
               "type": "null"
            }
         ],
         "default": null,
         "title": "Pid"
      },
      "uid": {
         "anyOf": [
            {
               "type": "integer"
            },
            {
               "type": "null"
            }
         ],
         "default": null,
         "title": "Uid"
      },
      "gid": {
         "anyOf": [
            {
               "type": "integer"
            },
            {
               "type": "null"
            }
         ],
         "default": null,
         "title": "Gid"
      },
      "comm": {
         "anyOf": [
            {
               "type": "string"
            },
            {
               "type": "null"
            }
         ],
         "default": "Unknown",
         "title": "Comm"
      },
      "cwd": {
         "anyOf": [
            {
               "type": "string"
            },
            {
               "type": "null"
            }
         ],
         "default": null,
         "title": "Cwd"
      },
      "fname": {
         "anyOf": [
            {
               "type": "string"
            },
            {
               "type": "null"
            }
         ],
         "default": null,
         "title": "Fname"
      },
      "dt": {
         "anyOf": [
            {
               "format": "date-time",
               "type": "string"
            },
            {
               "type": "null"
            }
         ],
         "default": null,
         "title": "Dt"
      },
      "extended": {
         "default": {},
         "title": "Extended",
         "type": "object"
      }
   },
   "required": [
      "tracer"
   ]
}

Fields:
field comm: str | None = 'Unknown'

Command name

field cwd: str | None = None

Current working directory of process

field dt: datetime | None = None

datetime of event

field extended: Dict[str, Any] = {}

Extended fields, will be stored in extended field as a dict

field fname: str | None = None

File name which is being accessed

field gid: int | None = None

Group ID of user

field pid: int | None = None

Process ID

field tracer: str [Required]

Tracer’s name

field uid: int | None = None

User ID

classmethod from_jaeger_span(tracer_name, span: Span) Tracking[source]
classmethod normalize_field(field, data)[source]