Questa pagina si applica ad Apigee e Apigee hybrid.
Visualizza la documentazione di
Apigee Edge.
Questo argomento è un riferimento per metriche, dimensioni e filtri di analisi. Per maggiori informazioni sul loro utilizzo, consulta la panoramica dell'analisi delle API.
Questo argomento mostra i nomi delle metriche e delle dimensioni così come vengono visualizzati nell'interfaccia utente e come devi utilizzarli nelle chiamate API.
- Vedrai i nomi dell'interfaccia utente quando crei e gestisci i report personalizzati.
- Utilizza i nomi specifici dell'API quando recuperi le metriche, crei una definizione di report o aggiorni una definizione di report.
Metriche
Di seguito sono riportate le metriche API che puoi recuperare nei report personalizzati e nelle chiamate API Apigee.
Metrica | Nome da utilizzare nell'API Apigee | Funzioni | Descrizione |
---|---|---|---|
Media transazioni al secondo | tps |
Nessuno |
Numero medio di transazioni, ovvero richieste proxy API, al secondo. Tieni presente che se hai un numero relativamente basso di transazioni nel periodo di tempo, il numero medio di transazioni al secondo potrebbe sembrare pari a zero nei report personalizzati dell'interfaccia utente se il numero è inferiore a due cifre decimali. Sintassi API: |
Successo della cache | cache_hit |
somma |
Numero di richieste API riuscite che utilizzano Sintassi API: |
Conteggio elementi cache L1 | ax_cache_l1_count |
media, min, max |
Numero di elementi nella cache L1 (in memoria) per transazione in un determinato
periodo di tempo. Ad esempio, se scegli Sintassi API: |
Errori dei criteri | policy_error |
somma |
Il numero totale di errori relativi alle norme nel periodo di tempo specificato. Gli errori relativi alle norme in genere si verificano intenzionalmente. Ad esempio, il criterio Un errore di policy viene registrato in Analytics solo se l'errore comporta l'errore del proxy API.
Ad esempio, se l'attributo La dimensione Nome norma in errore ( Un errore di destinazione (ad esempio Sintassi API: |
Errori del proxy | is_error |
somma |
Il numero totale di volte in cui i proxy API non sono riusciti nel periodo di tempo specificato. L'errore
del proxy può verificarsi quando un criterio non viene rispettato o quando si verifica un errore di runtime, ad esempio un errore La dimensione Proxy ( Sintassi API: |
Latenza di elaborazione delle richieste | request_processing_latency |
media, min, max |
Quantità di tempo (media, minima o massima), in millisecondi, necessario ad Apigee per elaborare le richieste in entrata. Il conteggio del tempo inizia quando la richiesta raggiunge Apigee e termina quando Apigee inoltra la richiesta al servizio di destinazione. Utilizzando dimensioni diverse, puoi esaminare le latenze di elaborazione delle richieste per proxy API, app per sviluppatori, regione e così via. Sintassi API: |
Dimensioni richiesta | request_size |
somma, media, min, max |
Dimensione del payload della richiesta ricevuto da Apigee, in byte. Sintassi API: |
Cache delle risposte eseguita | ax_cache_executed |
somma |
Il numero totale di volte in cui è stata eseguita una norma Poiché la policy Tuttavia, l'esecuzione della cache delle risposte è 0 se l'elemento
Nello strumento di debug,
puoi fare clic sull'icona Sintassi API: |
Latenza di elaborazione della risposta | response_processing_latency |
media, min, max |
Quantità di tempo (media, minima o massima), in millisecondi, necessaria ad Apigee per elaborare le risposte API. Il conteggio del tempo inizia quando il proxy API riceve la risposta del servizio di destinazione e termina quando Apigee inoltra la risposta al chiamante originale. Utilizzando dimensioni diverse, puoi esaminare le latenze di elaborazione delle risposte per proxy API, regione e così via. Sintassi API: |
Dimensioni risposta | response_size |
somma, media, min, max |
Dimensione del payload della risposta restituito al client, in byte. Sintassi API: |
Errori di destinazione | target_error |
somma |
Numero totale di risposte Sintassi API: |
Tempo di risposta target | target_response_time |
somma, media, min, max |
Quantità di tempo (somma, media, minimo o massimo), in millisecondi, affinché il server di destinazione risponda a una chiamata. Questa metrica indica il rendimento dei server di destinazione. Il conteggio del tempo inizia quando Apigee inoltra una richiesta al servizio di destinazione e termina quando Apigee riceve la risposta. Tieni presente che se una chiamata API restituisce una risposta dalla cache (utilizzando, ad esempio, il criterio Sintassi API: |
Tempo totale di risposta | total_response_time |
somma, media, min, max |
Quantità di tempo (somma, media, minimo o massimo), in millisecondi, dal momento in cui Apigee riceve una richiesta da un client al momento in cui Apigee invia la risposta al client. Il tempo include l'overhead di rete (ad esempio, il tempo necessario ai bilanciatori del carico e ai router per svolgere il proprio lavoro), la latenza di elaborazione delle richieste, la latenza di elaborazione delle risposte e il tempo di risposta target (se la risposta viene fornita dal servizio di destinazione anziché dalla cache). Utilizzando dimensioni diverse, puoi esaminare le latenze di elaborazione per proxy API, app per sviluppatori, regione e così via. Sintassi API: |
Traffico | message_count |
somma |
Numero totale di chiamate API elaborate da Apigee nel periodo di tempo specificato. Utilizza le dimensioni per raggruppare i conteggi del traffico nei modi più significativi per te. Sintassi API: |
Monetizzazione | |||
Tariffe | fees |
somma, media, min, max |
Importo che rappresenta la tariffa di configurazione, le tariffe ricorrenti o la ricarica prepagata. Sintassi API: |
Quota di condivisione delle entrate dello sviluppatore | x_apigee_mintng_dev_share |
somma, media, min, max |
Quota dello sviluppatore nelle entrate di una transazione. Apigee calcola la quota dello sviluppatore solo se hai attivato la condivisione delle entrate nel tuo piano tariffario. La quota dello sviluppatore viene calcolata utilizzando la seguente formula: x_apigee_mintng_dev_share = revShareGrossPrice * (share percentage)
Il valore della percentuale di condivisione viene recuperato dal tuo piano tariffario. Sintassi API: |
Prezzo della monetizzazione | x_apigee_mintng_price |
somma, media, min, max |
Entrate totali di una transazione.
Le entrate di una transazione sono impostate sul valore della variabile di monetizzazione Sintassi API: |
Moltiplicatore del prezzo dell'API | x_apigee_mintng_price_multiplier |
somma, media, min, max |
Il fattore (moltiplicatore) per cui viene moltiplicato il costo per transazione. Il costo per transazione è specificato nei prezzi delle commissioni basate sul consumo del piano tariffario. Sintassi API: |
Tassi di monetizzazione | x_apigee_mintng_rate |
somma, media, min, max |
Tasso addebitato per una transazione. La tariffa addebitata per una transazione viene calcolata utilizzando la seguente formula: x_apigee_mintng_rate = (consumption-based pricing rate) * perUnitPriceMultiplier value
Il valore della tariffa di prezzo basata sul consumo viene recuperato dal tuo piano tariffario e il valore
Sintassi API: |
Dimensioni
Le dimensioni consentono di visualizzare le metriche in raggruppamenti significativi. Ad esempio, visualizzare i conteggi del traffico totale diventa molto più utile quando li visualizzi per ogni app sviluppatore o proxy API.
Di seguito sono riportate le dimensioni fornite da Apigee pronte all'uso.
Dimensioni | Nome da utilizzare nell'API Apigee | Descrizione |
---|---|---|
Token di accesso | access_token |
Token di accesso OAuth dell'utente finale dell'app. |
Prodotto API | api_product |
|
Nome app AppGroup | app_group_app |
Nome dell'app chiamata quando fa parte di un gruppo di app. Per informazioni su AppGroups, vedi Utilizzare AppGroups per organizzare la proprietà delle app. |
Nome AppGroup | app_group_name |
Nome dell'AppGroup contenente le app chiamate, se applicabile. Per informazioni su AppGroups, vedi Utilizzare AppGroups per organizzare la proprietà delle app. |
Chiave cache | ax_cache_key |
Chiave contenente il valore Nello strumento di debug, quando selezioni un criterio |
Nome cache | ax_cache_name |
Nome della cache contenente le chiavi/i valori utilizzati dal criterio Nello strumento di debug,
quando selezioni un criterio |
Origine cache | ax_cache_source |
Livello di cache (L1 in memoria o database L2) da cui è stato recuperato Nello strumento di debug,
quando selezioni il criterio Per saperne di più sui livelli di cache, consulta Elementi interni della cache. |
ID client | client_id |
Chiave utente (chiave API) dell'app sviluppatore che effettua le chiamate API, passata nella richiesta come chiavi API o inclusa nei token OAuth. Per ottenere questa dimensione, i proxy che ricevono chiamate devono essere configurati per verificare la presenza di una chiave API o di un token OAuth validi. Le app per sviluppatori ricevono chiavi API, che possono essere utilizzate per generare token OAuth, quando le app vengono registrate in Apigee. Per ulteriori informazioni, vedi Come faccio a generare dati di analisi completi? Se i criteri sopra indicati non vengono soddisfatti, vedrai il valore |
App per sviluppatori | developer_app |
App per sviluppatori registrata su Apigee che effettua chiamate API. Per ottenere questa dimensione, le app devono essere associate a uno o più prodotti API che contengono i proxy API chiamati e i proxy devono verificare la presenza di una chiave API o di un token OAuth inviato con la chiamata API. La chiave o il token identifica l'app sviluppatore. Per maggiori informazioni, vedi Come faccio a generare dati di analisi completi?. Se i criteri sopra indicati non vengono soddisfatti, vedrai il valore |
Email sviluppatore | developer_email |
|
ID sviluppatore | developer |
ID sviluppatore univoco generato da Apigee nel formato
Per ottenere questa dimensione, gli sviluppatori devono avere app associate a uno o più prodotti API contenenti i proxy API chiamati e i proxy devono verificare la presenza di una chiave API o di un token OAuth inviato con le chiamate API. La chiave o il token identifica lo sviluppatore. Per ulteriori informazioni, vedi Come faccio a generare dati di analisi completi? Se i criteri sopra indicati non vengono soddisfatti, vedrai il valore |
Ambiente | environment |
Ambiente Apigee in cui vengono implementati i proxy API. Ad esempio, test o prod . |
Codice di errore | ax_edge_execution_fault_code |
Il codice di errore. Ad esempio:
|
Nome del flusso in caso di errore | ax_execution_fault |
Flusso denominato in
un proxy API che ha generato un errore. Ad esempio, Tieni presente che il nome completo da utilizzare nell'API Apigee è
Se non si sono verificati errori, vedrai il valore |
Risorsa di flusso | flow_resource |
Solo per l'utilizzo di Apigee. Se ti incuriosisce, consulta l'articolo Come utilizzare la dimensione"Flusso delle risorse" in Analytics. |
Flow State in caso di errore | ax_execution_fault |
Nome degli stati del flusso del proxy API che hanno generato errori, ad esempio Tieni presente che il nome completo da utilizzare nell'API Apigee è |
ID flusso gateway | gateway_flow_id |
Man mano che le chiamate API vengono elaborate da Apigee, a ogni chiamata viene assegnato un ID flusso gateway univoco. Esempio: rrt329ea-12575-114653952-1. L'ID flusso gateway è utile per distinguere le metriche in situazioni con TPS elevato in cui altre dimensioni come organizzazione, ambiente e timestamp sono identiche tra le chiamate. |
Organizzazione | organization |
L'organizzazione Apigee in cui vengono implementati i proxy API. |
Nome del criterio in caso di errore | ax_execution_fault |
Nome della policy che ha generato un errore e causato l'esito negativo della chiamata API. Tieni presente che il nome completo da utilizzare nell'API Apigee è Se un criterio genera un errore, ma l'attributo radice del criterio |
Proxy | apiproxy |
Il nome macchina (non il nome visualizzato) di un proxy API. |
Percorso di base del proxy | proxy_basepath |
BasePath configurato in ProxyEndpoint del proxy API. Il percorso di base non include la parte
di dominio e porta dell'URL del proxy API. Ad esempio, se l'URL di base di un proxy API è
Il valore viene memorizzato anche nella |
Tipo di deployment del proxy | proxy_deployment_type |
Il
tipo di proxy API
per i proxy di cui è stato eseguito il deployment. Se specifichi un tipo di proxy, i risultati vengono limitati a quel tipo di proxy. I valori potenziali sono |
Suffisso del percorso proxy | proxy_pathsuffix |
Il percorso della risorsa è stato aggiunto al percorso di base del proxy API. Ad esempio, se l'URL di base di un proxy API è Se non viene utilizzato alcun Il valore viene memorizzato anche nella |
Revisione proxy | apiproxy_revision |
Numero di revisione del proxy API che ha gestito le chiamate API. Ciò non significa necessariamente l'ultima revisione di un proxy API. Se un proxy API ha 10 revisioni, è possibile che sia attualmente in corso il deployment dell'ottava revisione. Inoltre, un'API può avere più revisioni di cui è stato eseguito il deployment a condizione che le revisioni abbiano percorsi di base diversi, come descritto in Deployment dei proxy. |
IP client risolto | ax_resolved_client_ip |
Indirizzo IP client di origine. Questo valore viene derivato utilizzando la risoluzione dell'indirizzo IP client predefinito o l'algoritmo configurato nella risoluzione dell'IP client configurata. Con il comportamento predefinito, il valore della dimensione Tieni presente che quando utilizzi prodotti di routing come Akamai per acquisire i veri indirizzi IP dei client,
l'IP client viene trasmesso ad Apigee nell'intestazione HTTP Il valore della dimensione
|
Codice di stato della risposta | response_status_code |
Codice di stato risposta HTTP inoltrato da Apigee al client, ad esempio 200 , 404 ,
503 e così via. In Apigee, il codice di stato della risposta della destinazione può essere sovrascritto con
norme come la norma AssignMessage e la norma RaiseFault,
motivo per cui questa dimensione può differire da Codice di risposta della destinazione (target_response_code). |
Host virtuale | virtual_host |
Il nome dell'host virtuale a cui è stata effettuata la chiamata API. Per saperne di più, consulta Informazioni su ambienti e gruppi di ambienti. |
Inbound/Client | ||
Indirizzo IP client | client_ip |
Indirizzo IP del sistema che raggiunge il router, ad esempio il client originale
(proxy_client_ip) o un bilanciatore del carico. Quando sono presenti più IP nell'intestazione
X-Forwarded-For , questo è l'ultimo IP elencato. |
Categoria dispositivo | ax_ua_device_category |
Il tipo di dispositivo da cui è stata effettuata la chiamata API, ad esempio Tablet o Smartphone . |
Famiglia di sistemi operativi | ax_ua_os_family |
Famiglia del sistema operativo del dispositivo che effettua la chiamata, ad esempio Android o
iOS . |
Versione sistema operativo | ax_ua_os_version |
La versione del sistema operativo del dispositivo che effettua la chiamata. È utile utilizzarla come seconda dimensione di analisi in dettaglio con Famiglia sistema operativo (ax_ua_os_family) per visualizzare le versioni dei sistemi operativi. |
IP client proxy | proxy_client_ip |
Indirizzo IP del client chiamante, memorizzato nella |
IP client di riferimento | ax_true_client_ip |
Quando utilizzi prodotti di routing come Akamai per acquisire i veri indirizzi IP dei client,
gli IP client vengono passati ad Apigee nell'intestazione HTTP Per determinare l'indirizzo IP client originale, a cui si accede tramite la dimensione |
Percorso richiesta | request_path |
Percorso della risorsa (senza includere il dominio) al servizio di destinazione, esclusi i parametri di query. Ad esempio, la destinazione di esempio Apigee |
URI di richiesta | request_uri |
Percorso della risorsa (senza includere il dominio) al servizio di destinazione, inclusi i parametri di query. Ad esempio, la destinazione di esempio Apigee |
Verbo della richiesta | request_verb |
Verbo di richiesta HTTP nelle richieste API, ad esempio GET, POST, PUT, DELETE. |
User agent | useragent |
Nome dell'user agent o del software agent utilizzato per effettuare la chiamata API. Esempi:
|
Famiglia di user agent | ax_ua_agent_family |
Famiglia dello user agent, ad esempio Chrome Mobile o curl . |
Tipo di user agent | ax_ua_agent_type |
Il tipo di user agent, ad esempio Browser , Mobile Browser , Library e così via. |
Versione dello user agent | ax_ua_agent_version |
Versione dell'user agent. È utile utilizzarla come seconda dimensione di analisi in dettaglio con Famiglia user agent (ax_ua_agent_family) per ottenere la versione della famiglia di agenti. |
In uscita/Destinazione | ||
Target | target |
Endpoint di destinazione che ha gestito la richiesta. Ad esempio, default . |
Percorso di base di destinazione | target_basepath |
Il percorso della risorsa (senza includere il dominio) al servizio di destinazione, esclusi i parametri di query, definito in Ad esempio, supponiamo che un proxy API chiami la seguente destinazione: <TargetEndpoint name="default"> ... <HTTPTargetConnection> <URL>http://mocktarget.apigee.net/user?user=Dude</URL> </HTTPTargetConnection> In questo esempio, target_basepath è Se il target fosse questo: <TargetEndpoint name="default"> ... <HTTPTargetConnection> <URL>http://mocktarget.apigee.net</URL> </HTTPTargetConnection> target_basepath sarà null. Nello strumento di debug, quando
selezioni l'icona AX alla fine del diagramma di flusso, la
|
Nome servizio gRPC | x_apigee_grpc_service_name |
Applicabile solo quando il servizio di destinazione è gRPC. Il nome del servizio gRPC. Per informazioni sui proxy gRPC, vedi Creazione di proxy API gRPC. |
Stato gRPC | x_apigee_grpc_status |
Applicabile solo quando il servizio di destinazione è gRPC. Lo stato della richiesta gRPC. Per informazioni sui proxy gRPC, vedi Creazione di proxy API gRPC. |
Host di destinazione | target_host |
Host del servizio di destinazione. Ad esempio, se un proxy API chiama
http://mocktarget.apigee.net/help , il target_host è
mocktarget.apigee.net . |
Indirizzo IP di destinazione | target_ip |
Indirizzo IP del servizio di destinazione che restituisce la risposta al proxy API. |
Codice di risposta target | target_response_code |
Codice di stato risposta HTTP restituito dal servizio di destinazione al proxy API, ad esempio
Un valore È diverso dalla dimensione Codice di stato della risposta (response_status_code). |
Nome RPC gRPC | x_apigee_grpc_rpc_name |
Applicabile solo quando il servizio di destinazione è gRPC. Il nome dell'RPC. Per informazioni sui proxy gRPC, vedi Creazione di proxy API gRPC. |
URL target | target_url |
L'URL completo del servizio di destinazione definito in TargetEndpoint di un proxy API. <TargetEndpoint name="default"> ... <HTTPTargetConnection> <URL>http://mocktarget.apigee.net/user?user=Dude</URL> </HTTPTargetConnection> In questo esempio, target_url è
Tieni presente che l'URL può essere sostituito anche durante l'elaborazione del proxy API con la
variabile di flusso Nel proxy chaining, target_url nel proxy chiamante è null. |
IP X-Forwarded-For | x_forwarded_for_ip |
L'elenco di indirizzi IP nell'intestazione Per determinare l'indirizzo IP client originale, a cui si accede tramite la dimensione |
X-Forwarded-For Proto | x_forwarded_proto |
Protocollo utilizzato dal client per connettersi al router. I valori validi includono |
Ora | ||
Giorno della settimana | ax_day_of_week |
Abbreviazione di tre lettere del giorno della settimana in cui sono state effettuate le chiamate API. Ad esempio, lun, mar, mer. |
Mese | ax_month_of_year |
Il mese numerico in cui sono state effettuate le chiamate API. Ad esempio, 03 per marzo. |
Ora del giorno | ax_hour_of_day |
In base a un orologio di 24 ore, l'ora a due cifre in cui sono state effettuate le chiamate API. Ad esempio, per le chiamate API effettuate nell'ora tra le 22:00 e le 23:00, ax_hour_of_day sarà 22. Il valore dell'ora è in UTC. |
Fuso orario | ax_geo_timezone |
Nomi comuni dei fusi orari da cui sono state effettuate le chiamate API, ad esempio
America/New_York e Europe/Dublin . |
Settimana del mese | ax_week_of_month |
Settimana numerica del mese. Ad esempio, per le chiamate API effettuate nella terza settimana di un
mese, ax_week_of_month è 3. |
Località | ||
Città | ax_geo_city |
La città da cui sono state effettuate le chiamate API. |
Continente | ax_geo_continent |
Codice di due lettere del continente da cui sono state effettuate le chiamate API. Ad esempio,
NA per il Nord America. |
Paese | ax_geo_country |
Codice di due lettere del paese da cui sono state effettuate le chiamate API. Ad esempio, US
per gli Stati Uniti. |
Regione geografica | ax_geo_region |
Codice con trattino per la regione geografica, ad esempio STATE-COUNTRY . Ad esempio,
WA-US per Washington (Stati Uniti). |
Regione | ax_dn_region |
Nome del data center Apigee in cui vengono implementati i proxy API, ad esempio
us-east-1 . |
Monetizzazione | ||
Creato | created |
Attualmente disponibile nelle organizzazioni Apigee, non in quelle Apigee hybrid. Timestamp Unix in cui è stato aggiunto il programma delle commissioni per lo sviluppatore dell'app e il prodotto API. |
Tipo di commissioni | fees_type |
Tipo di commissione. Può trattarsi di una tariffa di configurazione, di una tariffa ricorrente o di una ricarica prepagata. Questo valore
viene compilato solo se hai selezionato la metrica Fees . |
Valuta delle entrate | x_apigee_mintng_currency |
|
ID piano tariffario | x_apigee_mintng_rate_plan_id |
Attualmente disponibile nelle organizzazioni Apigee, non in quelle Apigee hybrid. Il piano tariffario di monetizzazione per lo sviluppatore di app. |
Transazione eseguita | x_apigee_mintng_tx_success |
Lo stato di monetizzazione della transazione è impostato sul valore della variabile di monetizzazione transactionSuccess acquisita nel criterio DataCapture. |
Filtri
I filtri consentono di limitare i risultati alle metriche con caratteristiche specifiche. Di seguito sono riportati alcuni filtri di esempio. Utilizza nomi in stile API per metriche e dimensioni quando definisci i filtri.
Restituisce le metriche per i proxy API con il nome books o music:
filter=(apiproxy in 'books','music')
Restituisce le metriche per i proxy API con nomi che iniziano con m
:
filter=(apiproxy like 'm%')
Restituisce le metriche per i proxy API con nomi che non iniziano con m
:
filter=(apiproxy not like 'm%')
Restituisce le metriche per le chiamate API con codici di stato della risposta compresi tra 400
e 599
:
filter=(response_status_code ge 400 and response_status_code le 599)
Restituisce le metriche per le chiamate API con codice di stato della risposta 200
e un codice di risposta di destinazione
404
:
filter=(response_status_code eq 200 and target_response_code eq 404)
Restituisce le metriche per le chiamate API con un codice di stato della risposta 500
:
filter=(response_status_code eq 500)
Restituisce le metriche per le chiamate API che non hanno generato errori:
filter=(is_error eq 0)
Restituisce le metriche per le chiamate API che non hanno generato risposte null
:
filter=(response_status_code isnot null)
Di seguito sono riportati gli operatori che puoi utilizzare per creare filtri per i report.
Operatore | Descrizione |
---|---|
in |
Includi nell'elenco |
notin |
Escludi dall'elenco |
is |
Utilizza response_status_code is null per filtrare le risposte il cui codice di stato
è null . |
isnot |
Utilizza response_status_code isnot null per filtrare le risposte il cui codice di stato
non è null . |
eq |
Uguale a == |
ne |
Non uguale a != |
gt |
Maggiore di > |
lt |
Meno di < |
ge |
Maggiore o uguale a >= |
le |
Minore o uguale a <= |
like |
Restituisce true se il modello di stringa corrisponde al modello fornito. |
not like |
Restituisce false se il pattern della stringa corrisponde al pattern fornito. |
similar to |
Restituisce true o false a seconda che il pattern corrisponda alla stringa specificata. È
simile a like , tranne per il fatto che interpreta il pattern utilizzando la definizione di espressione regolare
dello standard SQL. |
not similar to |
Restituisce false o true a seconda che il pattern corrisponda alla stringa specificata. È
simile a not like , tranne per il fatto che interpreta il pattern utilizzando la definizione di espressione regolare dello standard SQL. |
and |
Consente di utilizzare la logica AND per includere più di un'espressione di filtro. Il filtro
include i dati che soddisfano tutte le condizioni. |
or |
Consente di utilizzare la logica OR per valutare diverse espressioni di filtro possibili. Il filtro
include i dati che soddisfano almeno una delle condizioni. |