or run

npx @tessl/cli init
Log in

Version

Tile

Overview

Evals

Files

Files

docs

ab-testing.mdanalytics-insights.mddata-ingestion.mdindex.mdmonitoring-management.mdquery-suggestions.mdrecommendations.mdsearch-operations.md

monitoring-management.mddocs/

0

# Monitoring and Management

1

2

Service health monitoring, infrastructure metrics, operational management tools, and personalization services for maintaining optimal search performance and user experience.

3

4

## Capabilities

5

6

### Monitoring Client

7

8

Monitor service health and infrastructure performance.

9

10

```python { .api }

11

class MonitoringClient:

12

def __init__(

13

self,

14

app_id: Optional[str] = None,

15

api_key: Optional[str] = None,

16

transporter: Optional[Transporter] = None,

17

config: Optional[MonitoringConfig] = None

18

) -> None: ...

19

20

async def close(self) -> None: ...

21

async def set_client_api_key(self, api_key: str) -> None: ...

22

```

23

24

### Infrastructure Monitoring

25

26

Monitor cluster status, server health, and performance metrics.

27

28

```python { .api }

29

async def get_cluster_status(

30

self,

31

request_options: Optional[Union[dict, RequestOptions]] = None

32

) -> ClusterStatus:

33

"""

34

Get current cluster health and status.

35

36

Returns:

37

ClusterStatus with health information

38

"""

39

40

async def get_infrastructure_metrics(

41

self,

42

metric: str,

43

start_date: str,

44

end_date: str,

45

request_options: Optional[Union[dict, RequestOptions]] = None

46

) -> InfrastructureMetrics:

47

"""

48

Get infrastructure performance metrics.

49

50

Parameters:

51

- metric: Metric type to retrieve

52

- start_date: Start date (YYYY-MM-DD format)

53

- end_date: End date (YYYY-MM-DD format)

54

- request_options: Additional request options

55

56

Returns:

57

InfrastructureMetrics with performance data

58

"""

59

60

async def get_servers(

61

self,

62

request_options: Optional[Union[dict, RequestOptions]] = None

63

) -> ServersResponse:

64

"""

65

Get list of available servers and their status.

66

67

Returns:

68

ServersResponse with server information

69

"""

70

```

71

72

### Personalization Client

73

74

Manage search personalization and user experience optimization.

75

76

```python { .api }

77

class PersonalizationClient:

78

def __init__(

79

self,

80

app_id: Optional[str] = None,

81

api_key: Optional[str] = None,

82

transporter: Optional[Transporter] = None,

83

config: Optional[PersonalizationConfig] = None

84

) -> None: ...

85

86

async def close(self) -> None: ...

87

async def set_client_api_key(self, api_key: str) -> None: ...

88

```

89

90

### Personalization Strategy

91

92

Configure and manage personalization strategies for enhanced user experience.

93

94

```python { .api }

95

async def get_personalization_strategy(

96

self,

97

request_options: Optional[Union[dict, RequestOptions]] = None

98

) -> PersonalizationStrategy:

99

"""

100

Get current personalization strategy configuration.

101

102

Returns:

103

PersonalizationStrategy with current settings

104

"""

105

106

async def set_personalization_strategy(

107

self,

108

personalization_strategy_params: Union[PersonalizationStrategyParams, dict],

109

request_options: Optional[Union[dict, RequestOptions]] = None

110

) -> SetPersonalizationStrategyResponse:

111

"""

112

Configure personalization strategy settings.

113

114

Parameters:

115

- personalization_strategy_params: Strategy configuration

116

- request_options: Additional request options

117

118

Returns:

119

SetPersonalizationStrategyResponse with update confirmation

120

"""

121

122

async def delete_user_profile(

123

self,

124

user_token: str,

125

request_options: Optional[Union[dict, RequestOptions]] = None

126

) -> dict:

127

"""

128

Delete a user's personalization profile.

129

130

Parameters:

131

- user_token: Unique user identifier

132

- request_options: Additional request options

133

134

Returns:

135

Deletion confirmation response

136

"""

137

138

async def get_user_token_profile(

139

self,

140

user_token: str,

141

request_options: Optional[Union[dict, RequestOptions]] = None

142

) -> GetUserTokenProfileResponse:

143

"""

144

Get personalization profile for a specific user.

145

146

Parameters:

147

- user_token: Unique user identifier

148

- request_options: Additional request options

149

150

Returns:

151

GetUserTokenProfileResponse with user profile data

152

"""

153

```

154

155

### Composition Client

156

157

Manage search compositions for advanced query orchestration.

158

159

```python { .api }

160

class CompositionClient:

161

def __init__(

162

self,

163

app_id: Optional[str] = None,

164

api_key: Optional[str] = None,

165

transporter: Optional[Transporter] = None,

166

config: Optional[CompositionConfig] = None

167

) -> None: ...

168

169

async def close(self) -> None: ...

170

async def set_client_api_key(self, api_key: str) -> None: ...

171

```

172

173

### Composition Operations

174

175

Execute complex search operations across multiple indices and sources.

176

177

```python { .api }

178

async def search(

179

self,

180

composition_id: str,

181

request_body: Union[RequestBody, dict],

182

request_options: Optional[Union[dict, RequestOptions]] = None

183

) -> SearchResponse:

184

"""

185

Execute search on a composition.

186

187

Parameters:

188

- composition_id: Unique composition identifier

189

- request_body: Search request body

190

- request_options: Additional request options

191

192

Returns:

193

SearchResponse with composition search results

194

"""

195

196

async def search_for_facet_values(

197

self,

198

composition_id: str,

199

facet_name: str,

200

search_for_facet_values_request: Optional[Union[SearchForFacetValuesRequest, dict]] = None,

201

request_options: Optional[Union[dict, RequestOptions]] = None

202

) -> SearchForFacetValuesResponse:

203

"""

204

Search for facet values within a composition.

205

206

Parameters:

207

- composition_id: Unique composition identifier

208

- facet_name: Facet attribute name

209

- search_for_facet_values_request: Facet search parameters

210

- request_options: Additional request options

211

212

Returns:

213

SearchForFacetValuesResponse with facet values

214

"""

215

```

216

217

## Usage Examples

218

219

### Monitor Infrastructure

220

221

```python

222

from algoliasearch.monitoring.client import MonitoringClient

223

224

# Initialize client

225

client = MonitoringClient("YOUR_APP_ID", "YOUR_API_KEY")

226

227

# Check cluster status

228

status = await client.get_cluster_status()

229

print(f"Cluster status: {status.status}")

230

print(f"Last update: {status.last_update_timestamp}")

231

232

# Get infrastructure metrics

233

metrics = await client.get_infrastructure_metrics(

234

metric="cpu_usage",

235

start_date="2024-01-01",

236

end_date="2024-01-31"

237

)

238

```

239

240

### Configure Personalization

241

242

```python

243

from algoliasearch.personalization.client import PersonalizationClient

244

245

# Initialize client

246

client = PersonalizationClient("YOUR_APP_ID", "YOUR_API_KEY")

247

248

# Set personalization strategy

249

strategy_response = await client.set_personalization_strategy({

250

"eventsScoring": [

251

{

252

"eventName": "Add to cart",

253

"eventType": "conversion",

254

"score": 50

255

},

256

{

257

"eventName": "Purchase",

258

"eventType": "conversion",

259

"score": 100

260

}

261

],

262

"facetsScoring": [

263

{

264

"facetName": "brand",

265

"score": 100

266

},

267

{

268

"facetName": "category",

269

"score": 10

270

}

271

],

272

"personalizationImpact": 95

273

})

274

275

print(f"Strategy updated at: {strategy_response.updated_at}")

276

```

277

278

## Types

279

280

```python { .api }

281

# Monitoring types

282

class ClusterStatus(BaseModel):

283

status: str

284

last_update_timestamp: str

285

degraded: bool

286

287

class InfrastructureMetrics(BaseModel):

288

metric_name: str

289

data_points: List[dict]

290

start_date: str

291

end_date: str

292

293

class ServersResponse(BaseModel):

294

servers: List[dict]

295

296

# Personalization types

297

class PersonalizationStrategy(BaseModel):

298

events_scoring: List[EventScoring]

299

facets_scoring: List[FacetScoring]

300

personalization_impact: int

301

302

class EventScoring(BaseModel):

303

event_name: str

304

event_type: str

305

score: int

306

307

class FacetScoring(BaseModel):

308

facet_name: str

309

score: int

310

311

class PersonalizationStrategyParams(BaseModel):

312

events_scoring: Optional[List[EventScoring]] = None

313

facets_scoring: Optional[List[FacetScoring]] = None

314

personalization_impact: Optional[int] = None

315

316

class SetPersonalizationStrategyResponse(BaseModel):

317

status: int

318

updated_at: str

319

320

class GetUserTokenProfileResponse(BaseModel):

321

user_token: str

322

last_event_at: str

323

scores: Optional[dict] = None

324

325

# Composition types

326

class RequestBody(BaseModel):

327

query: Optional[str] = None

328

params: Optional[dict] = None

329

330

class SearchResponse(BaseModel):

331

hits: List[dict]

332

nb_hits: int

333

processing_time_ms: int

334

query: str

335

```